例如,有一个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点生命值的新剑,每位战士都会消耗自己的生命值。希望会有所帮助。

10-07 22:32