静的メソッドと非静的メソッドおよび変数の違いを学習するために、かなり単純なプログラムを実行しています。理解したつもりでしたが、次のコードを実行できません。
public class Zombie {
String name;
int serial = 0;
static int count = 0;
public Zombie(String name) {
this.name = name;
count++;
}
static String printStatus() {
String status;
if(count == 1) {
status = (count + "zombie created so far");
}
else {
status = (count + "zombies created so far");
}
return status;
}
String printZombie() {
String ident = (name + " is zombie " + serial);
return ident;
}
public static void main(String[] args) {
printStatus();
Zombie z1 = new Zombie("Deb");
printStatus();
Zombie z2 = new Zombie("Andy");
printStatus();
Zombie z3 = new Zombie("Carl");
printStatus();
z1.printZombie();
z2.printZombie();
z3.printZombie();
}
}
次の出力が必要です。
0 zombies created so far
1 zombie created so far
2 zombies created so far
3 zombies created so far
Deb is zombie 0
Andy is zombie 1
Carl is zombie 2
しかし、私はそれを実行することができません。問題(少なくともそのうちの1つ)は最初の方法にあると思いますが、わかりません。count は静的であるはずで、他の 2 つの変数はそうではなく、printStatus は静的であるはずですが、printZombie はそうではありません。誰かが私にこれを説明してもらえますか?