我正在使用Visual Studio Code,我只是在其中创建一个带有“项目”的文件夹,我不喜欢将Netbeans,eclipse等用于小型程序。
所以我正在创建一个小程序,我怀疑它是否可以工作,但是对于mos部分,它确实做到了,它创建了一个像角色扮演角色一样的rpg和第二个角色,并创建了一个模拟战斗,其中一个角色基于一个属性获胜。一切似乎都正常,但是当我调用方法Battle(oumar, aisha);
时,该方法需要两个字符并让它们战斗,它会显示错误消息
Main.java:6: error: cannot find symbol
Battle(oumar, aisha);
^
symbol: method Battle(Character,Character)
location: class Main
因此,由于我不是那么有经验,所以我不确定真正的问题是什么。 这是主类的代码:
public class Main {
public static void main(String args[]) {
Character oumar = new Character("Oumar", 10);
Character aisha = new Character("Aisha", 9);
Battle(oumar, aisha);
}
}
这是单独文件中的第二类(仍在同一文件夹中)
public class Character {
String name;
int BattlePower;
int wins;
Character one;
Character two;
public Character(String name, int BattlePower) {
this.name = name;
this.wins = wins;
System.out.println("New character: "+ name);
this.BattlePower = BattlePower;
this.wins = wins;
System.out.println(name + "has a Battle Power of " + BattlePower);
}
public void Battle(Character one, Character two) {
this.one = one;
this.two = two;
if (one.BattlePower > two.BattlePower ) {
System.out.print("Character " + one + " has won the Battle!");
one.wins++;
System.out.print("Character one now has " + wins + " wins!");
}
else if (two.BattlePower > one.BattlePower) {
System.out.print("Character " + two + " has won the Battle!");
two.wins++;
System.out.print("Character two now has " + wins + " wins!");
}
else {
System.out.print("The two characters have tied!");
}
}
}
任何帮助都会对您有所帮助,以及将来可能对我有帮助的任何提示。
答案 0 :(得分:0)
我相信您需要使用
oumar.Battle(oumar, aisha)
或
aisha.Battle(oumar, aisha)
,因为该方法位于非静态类的内部,所以如果没有对象引用就无法调用它。
如果您想这样称呼
Battle(oumar, aisha)
您需要将其移至主类。
此外,这些问题也应该在其他IDE上出现。
答案 1 :(得分:0)
您可以在Character类中放置一个无参数的构造函数,例如public Character(){}。然后在Main.java中,可以使用no-arg构造函数创建Character类的对象,然后调用Battle方法,例如Character ch1 = new Character();。 ch1.Battle(oumar,aisha)。