2016-07-08 3 views
-2
// in general, it could be potion, armor, weapon, etc. 
Item class { 
    // states 
    id 
    name 
    // behavior 
    set, get of states here.. 

    use() 
    // still thinking what is the other general behavior 
} 

// in general, it could be Gun,Sword,Wand, Bow (range,melee,magic) 
Weapon class extends Item{ 
    // gun - fire(); type: range (in the movie, the gun can be use as melee weapon too xD) 
    // sword - slash(); type: melee (in the movie, the sword can be thrown :) or use as magic wand?) 
    // wand - ?? 
    // mace - bash(); 
    // bow - shoot() ?? 
    // so what is the general behavior of this weapon? 
} 

Bag class {} // parent is Item, collection of items here 

// Human, Orc, etc 
Character class { 
    // states 
    Weapon 

    // behavior 
    attack(); 
    // still thinking what is the other behavior and states 
} 

// Swordsman, Magician, Archer, etc. 
Hero class extends Character{ 
} 

Приведенный выше код мои ООП классы Ролевые игры, которые я разрабатываю, и я с трудом время думать об общих состояний и поведение каждого класса ,Java ООП - Ролевые классы игры в ЦЕЛОМ

Проблема

  • Как создать эти классы (я новичок в ООП). Я слышал, некоторые инкапсуляцию, polymorphish и т.д.
  • Я не знаю, как правильно использовать интерфейс, абстрактные и т.д.
  • мышление общих состояний и поведения классов
  • Как вы можете видеть в оружии класс. Пистолет, меч, лук могут использоваться как рукопашный бой, дальность действия или даже магия. И должен ли я называть этот WeaponType? (Диапазон, ближний бой, магия)
+1

Замечание: «класс Foo' не' Foo class ». Может быть, вы можете начать с чтения некоторого учебника, например https://docs.oracle.com/javase/tutorial/java/index.html, этот вопрос слишком широк как есть –

+0

Уверен, что у вас есть правильный тег?Это точно не исходный код Java ?! – GhostCat

+0

только опечатка, извините. – ronscript

ответ

2

Давайте ответим на ваши запросы построчно

Как создать эти классы (я новичок в ООП). Я слышал, некоторые инкапсуляцию, polymorphish и т.д.

Вы не можете создать игру, не имея через понять из OOPS.Spend некоторое время понимание Abstraction/Герметизация/Polymerphsim/Наследование.

Я не знаю, как правильно использовать интерфейс, абстрактные и т.д.

Может быть, если вы знаете, что те, означает, что вы могли бы решить, когда и как использовать их, если у всех вас они нуждаются в них.

Думая об общих состояниях и поведении классов Как вы можете видеть в классе оружия. Пистолет, меч, лук можно использовать в качестве ближнего боя, дальности, или даже магии. И должен ли я называть этот WeaponType? (Диапазон, ближний бой, магия)

В этом случае, вы можете иметь интерфейс называется оружие с их типами, как абстрактные methods.You могут наследовать их и сделать изменения свойств оружия для каждого оружия и т.д., как сила атаки, сила и т. д. Конечно, вам нужно пройти через концепции OOPS. Если вы быстро обучаетесь Start by watching this Video.

+0

благодарю вас за ответ! – ronscript

0

Для сложного дизайна, такого как игра, я предлагаю вам изучить лучшие интерфейсы и абстрактные классы. Затем я предлагаю вам нарисовать диаграмму UML модели вашей игры. Оружие может быть интерфейсом с методом fire(), и все оружие, которое реализует интерфейс, будет иметь свой собственный метод fire().

Для хорошего дизайна я также предлагаю изучить образцы дизайна очень хорошо. Если вы сделаете хороший дизайн своей игры, в будущем вам будет очень легко расширить свою игру новыми функциями!

Смежные вопросы