此行的多个标记,Java构造函数错误(初学者级别)。

时间:2017-06-02 08:06:28

标签: java eclipse constructor

我刚开始学习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

}

}

}

3 个答案:

答案 0 :(得分:3)

将构造函数移出main()方法。

答案 1 :(得分:2)

我建议你做一些基本的初级Java教程。你不能把构造函数放在另一个方法中(它在main方法中)。另外要使用this.numAttempts,您需要对象属性。我试图移动代码片段以使其更有意义:

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();
    }
}

答案 2 :(得分:1)

你在一个java中不允许的方法中定义方法。此外,我已将属性移至类级别。

请使用以下代码:

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);
    }
}