我刚开始学习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 :(得分: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);
}
}