我正在写一个允许两个超级英雄战斗的程序。第一个类已正确编译,但主要不是。我在第9行和第18行遇到了同样的错误。我希望有人可以帮助我。
战斗类:
public class Fight {
public static void main (String [] args) {
Superhero Spiderman = new Superhero();
Superhero TheHumanTorch = new Superhero(21);
}
public TheHumanTorch fight(Spiderman){
System.out.Println(TheHumanTorch);
}
private void powerUp(int amount) {
int amount = 100;
Spiderman Strength = Strength + amount;
}
public TheHumanTorch fight(Spiderman){
System.out.Println(Spiderman);
}
}
超级英雄班:
public class Superhero {
public String Name;
private int Strength;
public Superhero(String n,int s) {
Name = n;
Strength = s;
}
public Superhero(String n) {
Name = n;
Strength = 10;
}
private void PowerUp(int amount) {
Strength = Strength + amount;
}
public Superhero fight(Superhero opponet) {
if (this.Strength > opponet.Strength) {
return this;
} else {
return opponet;
}
}
public String toString() {
return "Superhero";
}
}
答案 0 :(得分:0)
第9行和第18行:
public TheHumanTorch fight(Spiderman){
你没有定义蜘蛛侠。 你可以这样做:
public void fight(Superhero superHero){
您的代码的其他问题包括:
main
中定义两次的战斗方法)fight
的返回类型可能只是void
Superhero
而不是TheHumanTorch
Spiderman Strength = Strength + amount;
会给您一个错误。力量为int
。你可以this.strength += amount;
fight()
课程中的SuperHero
方法有偏见。它的实力与实力并列,对手总是获胜。你可以为力量创造一个条件。fight
和各种方法。 没有必要这样做。只需创建SuperHero
的实例并从实例中调用方法:
//In main
SuperHero hero1= new SuperHero("Spiderman");
SuperHero hero2= new SuperHero("Batman");
hero1.fight(hero2); //Let Spiderman fight with Batman