Java 修复了记事本中的TictaToe错误?
嗨,我在做作业,我在做一个井字游戏。根据老师的指示,我正在使用记事本,我在一个记事本中制作了两个类,一个主要类是Tictatcoe名称或第二个游戏板。在netbeans中一切都正常,但当我在记事本中实现并通过cmd执行它时,出现了错误 TicTacToe.java:16:错误:GameBoard类是公共的,应在名为GameBoard.java的文件中声明` `Java 修复了记事本中的TictaToe错误?,java,netbeans,notepad,Java,Netbeans,Notepad,嗨,我在做作业,我在做一个井字游戏。根据老师的指示,我正在使用记事本,我在一个记事本中制作了两个类,一个主要类是Tictatcoe名称或第二个游戏板。在netbeans中一切都正常,但当我在记事本中实现并通过cmd执行它时,出现了错误 TicTacToe.java:16:错误:GameBoard类是公共的,应在名为GameBoard.java的文件中声明` ` 公共类游戏板{ 私有char[][]游戏板; 公共游戏局() {gameBoard=新字符[3][3]; 对于(int row=0;ro
公共类游戏板{
私有char[][]游戏板;
公共游戏局()
{gameBoard=新字符[3][3];
对于(int row=0;row,在单个Java文件中只能有一个public
类,并且Java文件的名称必须与其中的public
类的名称匹配。一些可能的解决方案:
选项1-将GameBoard
类拉入一个新文件,并将该文件命名为GameBoard.java
。这意味着您还需要更改该文件的名称。确保这些文件位于同一文件夹中,除非您要添加import
语句
选项2-删除GameBoard
类的修饰符(public
)(默认为package private)
选项3-将GameBoard
类嵌套在TictoE类中(如果愿意,您仍然可以更改/删除修饰符;public
通常不建议嵌套类)您不能在一个文件中声明两个公共类(除非它们是嵌套的).现在,您已经在同一个.java文件中定义了TicTacToe
和GameBoard
阅读本教程,了解每个文件只允许一个公共类(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");
}
}
}
公共类TicTacToe{
公共静态void main(字符串[]args){
游戏板=新游戏板();
board.displayBoard();
}
}
类游戏板{
私有char[][]游戏板;
公共游戏局(){
gameBoard=新字符[3][3];
对于(int row=0;row
Notepad没有为您创建.java文件。您需要重命名.txt文件的扩展名。当使用像NetBeans这样的IDE时,它会为您这样做。但是我正在使用已经命名的TicTacToe.javaread阅读答案——也就是说,请参阅我的答案中提供的Oracle文档以获得直接指导。如果我更改了名称,那么新的错误将是tictactoe应该被声明为etci在一个记事本中使用了两个类,主类是TictoE,记事本的名字也是TictoE.java,另一个类是GameBoard类,这里是错误确切的TictoE.java:16:error:class GameBoard是public,应该在名为GameBoard.java` private修饰符的文件中声明,如果我创建一个新文件,然后如何从主文件访问它?@user3668974我更新了我的答案,使其更清晰。选项2最简单,但所有3个都可以解决您的问题。是的,您可以,只要其中只有一个是公共的。尝试一下。如果我嵌套了相同的错误occor。@Zar如果我将新文件放在另一个文件中,您能告诉我如何访问新文件GameBoard吗,从主文件?
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");
}
}
}