我对 Java 很陌生,所以如果我没有正确使用某些术语,请告诉我。我有一个名为的对象类Player
,它有一个名为的方法,该方法getInventory()
返回ArrayList<Item>
名为的对象inventory
。
我希望该方法以ArrayList
保存物品的形式返回玩家的库存,到目前为止,它工作正常。
该类Item
是我的类Armor
和Sword
继承的抽象基类/父类。所以,我希望格式(如果您甚至想这样称呼它,我正在使用纯文本的“GUI”方法)看起来像这样:
- 带状锁甲 - 护甲
- 锁子甲 - 盔甲
- 长剑——剑
我使用以下代码来显示“Banded Mail”部分(在循环中通常使用计数):
System.out.print(player.getInventory().get(count).getName());
我尝试使用以下代码来破译该对象是由什么类型的类组成的(即该类的名称):
System.out.println(player.getInventory().get(count).getClass().toString());
我只想根据制造对象的类别打印“盔甲”或“剑”或“盾”。我认为附加toString()可以解决问题,但它给了我这个输出:
类武器装备demo.Armor
所以我想知道两件事:
我将如何覆盖
toString()
以仅显示类的名称?toString()
具体在 哪里player.getInventory().get(count).getClass().toString()
?和最重要的是,一个对象怎么可能有这么多其他方法可以用点运算符附加到它上面呢?我理解一个类喜欢
Player
有一个名为的方法getName()
,但是呢player.getInventory().get(count)
?你把一个方法放在一个方法里面吗?这甚至可能吗?从我一直看到的方式来看,点运算符是一种描绘对象外壳内部更远的方式(方法在类内部),但如果这是真的,那么这意味着你可以在里面有方法的方法。我很困惑。
非常感谢您的帮助。