簡體   English   中英

應為 Java 標識符

[英]Java identifier expected

我正在編寫一個允許兩個超級英雄戰斗的程序。 第一個類已正確編譯,但是 main 沒有正確編譯。 我在第 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"; 
    } 
}

在第 9 行和第 18 行:

public TheHumanTorch fight(Spiderman){

你沒有定義蜘蛛俠。 你可以這樣做:

public void fight(Superhero superHero){

您的代碼的其他問題包括:

  • 兩次定義相同的方法(在main定義兩次戰斗方法)
  • 因為你的戰斗方法是通用的,你可能想給一個更通用的變量名,比如“superHero”而不是“spiderman”。 (因為當前的英雄不會總是與蜘蛛俠戰斗)
  • 方法fight的返回類型可能只是void
  • 如果你需要返回戰斗的勝利者,應該是Superhero而不是TheHumanTorch
  • Spiderman Strength = Strength + amount; 會給你一個錯誤。 實力是int 你可以這樣做。 this.strength += amount;
  • 你在SuperHero類中的SuperHero fight()方法是有偏見的 勢均力敵的局面,對手總是勝利。 你可以為力量平局創造條件。
  • 您正在主要重新定義fight和各種方法。

沒有必要這樣做。 只需創建一個SuperHero實例並從該實例調用方法:

//In main
SuperHero hero1= new SuperHero("Spiderman");
SuperHero hero2= new SuperHero("Batman");
hero1.fight(hero2);    //Let Spiderman fight with Batman

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM