
[英]Android - Compare custom object by multiple fields (different object/primitive types)
[英]Custom Object properties - multiple primitive variables or array of objects
我在编程方面很新鲜,我尝试制作简单的应用程序。 应用程序将允许用户为流行的RPG游戏制作角色表。 现在,我试图(在纸上)对其建模,并提出(也许是一个愚蠢的问题)问题。
每个角色都有一套技能-很多(33)。 每个技能手杖的值为0-5。 现在我的问题是:使33个int插入角色对象对象或使Class Skill和使Characters中的技能数组更好? 我对Java的了解不足以决定:(如果有人找到有关它的有用文章,或者可以简单地向我解释一下,我将不胜感激。
我只是希望这不是完全愚蠢的问题:)祝你有美好的一天!
如果您具有固定数量的技能,则可以使用多个属性,使用这些属性将提高可读性,但会使您的课程有点丑陋且难以处理。
如果值始终是int
,我建议使用Map
而不是array
或Collection
。
Map<String, Integer> skills;
因此,您可以拥有一个带有漂亮声明的类,并按名称而不是按数组中的位置来引用技能:
Integer strenghtLevel = skills.get("strenght");
我绝对建议创建一个特定的技能课程。 今天,您使用的是0到5之间的整数; 但是这种事情很快就会变得更加复杂。
因此,您应该预先预先设计“技能”类(您可能还考虑拥有一个“技能”界面;因为将来可能需要面对(针对不同技能类型)不同的实现)。
然后,您的角色类可能正在使用动态容器。 例如java.util.ArrayList可以容纳所有各种技能。
最好使用课堂技能,因为这样可以确保每个技能都有名称和价值。 然后,您还可以执行诸如创建打印或显示名称和值的方法之类的操作,并且,如果您想为该技能添加另一个属性,则非常简单。
您可以使用int元素数组。 除非您需要一些自定义逻辑,否则就足够了。 如果值应该具有状态和动作,则它们应该是对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.