Java OOP - 在GENERAL

时间:2016-07-08 11:34:41

标签: java oop generalization

// 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{
} 
  

上面的代码是我正在开发的角色扮演游戏的OOP类,我很难想到每个类的一般状态和行为。

问题

  • 如何创建这些类(我是OOP的初学者)。我听说过一些封装,多态性等等。
  • 我不知道如何正确使用界面,摘要等。
  • 思考班级的一般状态和行为
  • 正如你在武器类中看到的那样。枪,剑,弓可以用作近战,射程,甚至魔法。我应该调用这些WeaponType吗? (范围,混战,魔法)

2 个答案:

答案 0 :(得分:2)

让我们逐行回答你的问题

  

如何创建这些类(我是OOP的初学者)。我听说过一些   封装,多态性等。

如果没有了解OOPS,就无法开发游戏。请花一些时间了解抽象/封装/ Polymerphsim /继承。

  

我不知道如何正确使用界面,抽象等。

也许如果你知道那些意味着你能够决定何时以及如何使用它们,那么你将需要它们。

  

思考班级的一般状态和行为正如您所见   在武器类。枪,剑,弓可以用作近战,射程,   甚至是魔法。我应该调用这些WeaponType吗? (范围,混战,魔法)

在这种情况下,您可以使用一个名为Weapons的接口,其类型为抽象方法。您可以继承它们并为每个武器等武器属性更改,如攻击力,力量等。当然,您需要通过与OOPS概念。 如果您是快速学习者Start by watching this Video.

答案 1 :(得分:0)

对于像游戏这样的复杂设计,我建议你学习更好的界面和抽象类。然后我建议你绘制一个游戏模型的UML图。 武器可以是一个带有fire()方法的接口,实现该接口的所有武器都有自己的fire()方法。

对于一个好的设计,我也建议你很好地学习设计模式。如果您对游戏进行了良好的设计,将来可以通过新功能轻松扩展您的游戏!