修复了记事本中的tictactoe错误?

时间:2015-09-01 19:06:15

标签: java netbeans notepad

  

嗨,我正在做我的任务,我正在制作一个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");
 }
  }

  }

这是我的代码

3 个答案:

答案 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文件中定义了TicTacToeGameBoard

class declarations

上阅读本教程

答案 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");
        }
    }
}