例如,有一个Warrior类与Sword类链接在一起。在Sword定义的类字段中:public static int hp = 100;其中显示了这种武器消耗的生命值。需要几个类的战士。我认为我需要在Warrior类中定义链接Sword(仅一次)才能获得静态字段hp。如何正确链接?
class public Warrior{
public String name;
public Sword s = new Sword(); // ???
}
class public Sword{
public static int hp = 100;
}
每次创建新的Warrior时,
new Sword()
都会创建指向课程的链接吗?我可以在其他武器类中将Sword类定义为静态类吗? (需要像Sword这样的多个类)
以下结构正确吗?外部类可以是静态的,而可以在另一个内部保持吗?
class public Warrior{
public String name;
public int SwordHp = Weapon.Sword().hp;
public int BowHp = Weapon.Sword().hp;
}
(abstract?) public static class Weapon{
public static class Sword{
public static int hp = 100;
}
public static class Bow{
public static int hp = 90;
}
最佳答案
为了获得静态场马力,您无需创建
public Sword s = new Sword();
在战士类中。静态变量在加载时初始化。因此,您可以在任何地方访问hp,而无需声明特定的类,只需使用
Sword.hp;
这对静态变量没有任何影响。
Sword s = new Sword()
据我了解,您目前拥有Sword的战士和不同的武器。每种武器都有生命值hp,而每种Warior都有自己的武器和生命值。如果您使用静态字段,那么这些健康点将在所有勇士之间共享,如果有50个勇士,那么所有人都将仅使用100个要点,我希望您不希望这样做,因此您应该使用:
class public Warrior{
public String name;
public Sword s = new Sword(); // ???
}
class public Sword{
public int hp = 100;
}
每次创建战士时,它将创造出具有100点生命值的新剑,每位战士都会消耗自己的生命值。希望会有所帮助。