2017-06-02 80 views
-1

私はちょうどjavaを学び始め、言語に慣れ親しんでいません。これは、私が楽しいためにやっているより多くの慣れ親しんだ、と私はコンストラクタラインで得ている複数のエラーを把握することはできませんオンライン割り当てです。助けてくださいこの行に複数のマーカーがあり、Javaコンストラクターのエラー(初心者レベル)です。

public class WhackAMole { 
    public static void main(String[] args) { 
    int score; 
    int molesLeft; 
    int attemptsLeft; 
    char [][]moleGrid=new char[10][10]; 
    int numAttempts; //is this needed 
    int gridDimensions; // is this also needed 

    /*Multiple markers at this line 
- Syntax error on token "int", delete this token 
- Syntax error, insert ";" to complete Statement 
- Syntax error on token "int", delete this token 
- numAttempts cannot be resolved to a variable 
- gridDimensions cannot be resolved to a variable 
- Syntax error on token "int", delete this token 
- The method WhackAMole(int, int) is undefined for the type 
WhackAMole*/ 
    WhackAMole(int numAttempts, int gridDimensions) { 
     this.numAttempts=numAttempts ; //error-cannot use this in static content 
     this.gridDimensions=gridDimensions ; // error-cannot use this in static content 

} 

} 

} 
+0

コードの下に使用してください。 'int gridDimensions;の後に'} 'を追加し、下から1'} 'を削除します。 –

+0

コンストラクタとフィールドを 'main'から移動する必要があります – QBrute

+0

メソッドとコンストラクタを混合しています。 –

答えて

3

main()メソッドからコンストラクタを移動してください。

+0

コンストラクタだけではありません。彼は属性も移動する必要があります。彼はコンストラクタの変数を使用しています – Dennux

2

私は基本的な初心者レベルのJavaチュートリアルを行うことをお勧めします。他のメソッドにコンストラクタを置くことはできません(メインメソッドにあります)。また、this.numAttemptsを使用するには、オブジェクトの属性が必要です。あなたはJavaで許可されていないメソッドの内部メソッドをdefininingた

public class WhackAMole { 

    // Those are attributes 
    private int score; 
    private int molesLeft; 
    private int attemptsLeft; 
    private char[][] moleGrid = new char[10][10]; 
    private int numAttempts; // is this needed 
    private int gridDimensions; // is this also needed 

    // Constructor 
    public WhackAMole(int numAttempts, int gridDimensions) { 
     this.numAttempts = numAttempts; 
     this.gridDimensions = gridDimensions; 
    } 

    public void play() { 
     // Game logic here 
    } 

    /* This Method should propably be in another class */ 
    public static void main(String[] args) { 

     final WhackAMole wham = new WhackAMole(42, 1234567); 
     wham.play(); 
    } 
} 
+0

ありがとう、この割り当てはレベルクラスのみから始まりました...試み続けるでしょう – LightPalace

1

:私はそれをより多くの意味を与えるために、コード・スニペットを移動しようとしました。また、属性をクラスレベルに移動しました。あなたのmainメソッドを閉じていない

public class WhackAMole { 

    int score; 
    int molesLeft; 
    int attemptsLeft; 
    char[][] moleGrid = new char[10][10]; 
    int numAttempts; //is this needed 
    int gridDimensions; // is this also needed 

    WhackAMole(final int numAttempts, final int gridDimensions) { 
     this.numAttempts = numAttempts; //error-cannot use this in static content 
     this.gridDimensions = gridDimensions; // error-cannot use this in static content 
    } 

    public static void main(final String[] args) { 
     WhackAMole whackAMole = new WhackAMole(30, 40); 
     System.out.println("numAttempts:" + whackAMole.numAttempts + " gridDimensions:" + whackAMole.gridDimensions); 
    } 
} 
+0

私はあなたがコンストラクタで最終intをuysed気づいた、それはintとどのように違うのですか? – LightPalace

+0

最終的なキーワードを理解するために、javaの基礎をお読みください。 –

関連する問題