嗨,我正在做我的任务,我正在制作一个tic tac toe游戏。我从老师的指示中为此目的使用记事本,我在一个记事本,一个主类TicTacToe名称或第二个GameBoard中进行了两个班级。 netbeans中的一切都没问题,但是当我在记事本中实现并通过cmd执行它时,就会出现错误
TicTacToe.java:16:错误:类GameBoard是公共的,应该在名为GameBoard.java的文件中声明`
`
public class GameBoard {
private char[][] gameBoard;
public GameBoard()
{ gameBoard= new char[3][3];
for(int row=0; row<gameBoard.length; row++)
{
java.util.Arrays.fill(gameBoard[row], ' ' );
}
}
public void displayBoard()
{
for(int row=0; row<gameBoard.length; row++)
{
for(int col=0; col<gameBoard.length ; col++)
{
System.out.print("\t" + gameBoard[row][col]);
if(col==0 || col==1)
System.out.print("|");
}
System.out.print("\n---------------------------\n");
}
}
}
这是我的代码
答案 0 :(得分:3)
在一个Java文件中只能有一个public
类,并且Java文件的名称必须与其中public
类的名称相匹配。一些可能的解决方案:
选项1 - 将GameBoard
类拉入新文件并将文件命名为GameBoard.java
。这意味着您还需要change the extension的文件。确保文件位于同一文件夹中,除非您要添加import
语句。
选项2 - 删除public
类的修饰符(GameBoard
)(默认为package-private)
选项3 - 将GameBoard
类嵌套在TicTacToe类中(如果需要,您仍然可以更改/删除修饰符; public
通常不建议使用嵌套类)
答案 1 :(得分:2)
您不能在单个文件中声明两个公共类(除非它们是嵌套的)。现在,您已在同一.java文件中定义了TicTacToe
和GameBoard
。
答案 2 :(得分:0)
每个文件只允许1个公共类(TicTacToe.java),因此您需要重命名它。您可以使另一个类没有访问修饰符:
public class TicTacToe {
public static void main(String[] args) {
GameBoard board=new GameBoard();
board.displayBoard();
}
}
class GameBoard {
private char[][] gameBoard;
public GameBoard() {
gameBoard = new char[3][3];
for (int row = 0; row < gameBoard.length; row++) {
java.util.Arrays.fill(gameBoard[row], ' ');
}
}
public void displayBoard() {
for (int row = 0; row < gameBoard.length; row++) {
for (int col = 0; col < gameBoard.length; col++) {
System.out.print("\t" + gameBoard[row][col]);
if (col == 0 || col == 1)
System.out.print("|");
}
System.out.print("\n---------------------------\n");
}
}
}