这是我的战士类。我想在这个班上有一批勇士。 这个想法是能够调用像这样的方法 - > warrior.select(1)在哪里它会得到在索引1创建的战士。希望这是有道理的。 请向我解释为什么这个错误正在发生。为什么我在我的数组索引0上遇到了stackoverflow错误
Exception in thread "main" java.lang.StackOverflowError
at pking.Warrior.<init>(Warrior.java:42)
代码
package pking;
public class Warrior {
private String name;
private int age;
private String call;
private int attackPower;
private String weapon;
public Warrior(String myName, int myAge, String myCall, int myAttackPower) {
name = myName;
age = myAge;
call = myCall;
attackPower = myAttackPower;
weapon = "";
Warrior[] warriors = new Warrior[4];
warriors[0] = new Warrior("Spartacus", 40, "I AM SPARTACUS!", 9000);
warriors[1] = new Warrior("Crixus", 35, "CHAMPION OF CAPUA", 8000);
warriors[2] = new Warrior("Gannicus", 30, "SLAYER", 8000);
warriors[3] = new Warrior("Alexander", 21, "I AM ALEXANDER, THE CODER", 0);
}
//Prints warriors name
public void name() {
System.out.println(name);
}
//Prints warriors age
public void age() {
System.out.println(age);
}
//Prints warriors call
public void warriorsCall() {
System.out.println(call);
}
//Prints warriors attack power
public void attackPower() {
System.out.println(attackPower);
}
//Equips warriors weapon and prints message
public void equip(String myWeapon) {
weapon = myWeapon;
System.out.println("Equiped the: " + weapon);
}
//Prints warriors weapon
public void weapon() {
System.out.println(weapon);
}
}
要调用的'Warrior'构造*** ***里面的'Warrior'构造。这是递归的。不要以为这就是你想要做的。 – sstan
@sstan尼斯现货! – MadProgrammer
感谢您的快速回复。所以,你说我不能在构造函数中创建战士。那么我应该怎么做呢?我试图在实例变量下创建数组,但是我得到相同的错误。 –