Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java在同一目录下的另一个Java文件中找不到类的符号_Java - Fatal编程技术网

Java在同一目录下的另一个Java文件中找不到类的符号

Java在同一目录下的另一个Java文件中找不到类的符号,java,Java,我是学习java的初学者,我正在使用记事本学习java的基础知识,我似乎无法使用另一个java文件中的类(但在同一个目录中),有人能教我怎么做吗 例如,在同一个目录中,我有两个java文件,一个叫做Shape.java,另一个叫做Board.java。在Shape.java中,我有一个名为Tetrominoes的类,现在如何在Board.java中使用这个Tetrominoes类。我知道使用导入形状。Tetrominoes不起作用 下面我发布了一些与我所说的类相关的代码 Shape.java p

我是学习java的初学者,我正在使用记事本学习java的基础知识,我似乎无法使用另一个java文件中的类(但在同一个目录中),有人能教我怎么做吗

例如,在同一个目录中,我有两个java文件,一个叫做Shape.java,另一个叫做Board.java。在Shape.java中,我有一个名为Tetrominoes的类,现在如何在Board.java中使用这个Tetrominoes类。我知道使用导入形状。Tetrominoes不起作用

下面我发布了一些与我所说的类相关的代码

Shape.java

public class Shape {
    protected enum Tetrominoes { NoShape, OtherShape };
    private Tetrominoes pieceShape;

    public Shape() {
        setShape(Tetrominoes.NoShape);
    }

    public void setShape(Tetrominoes shape) {
        // Codes...
    }

    public Tetrominoes getShape() { return pieceShape; }

}
Board.java

public class Board extends JPanel implements ActionListener {
    private Tetrominoes[] board;

    public Board(Game parent) {
        initBoard(parent);
    }

    // and other codes...
}
一切正常,除了这个错误“找不到符号”指向“私有Tetrominoes[]板


为什么会这样?我该如何解决这个问题?先谢谢你。如果有什么不清楚或需要发布的内容,请询问我,我会尽快更新我的问题。

您的
Tetrominoes
枚举嵌套在
形状中。所以你可以把它称为:

private Shape.Tetronminos[] board;

。。。但在我看来,你最好把它推广到顶级类型。我还建议将其命名为
Tetromino
(单数),并使值名遵循Java命名约定:
NO\u-SHAPE
OTHER\u-SHAPE
(尽管我认为这些都不是真正的值)。

tetrominos
枚举嵌套在
SHAPE
中。因此,您可以将其称为:

private Shape.Tetronminos[] board;

。。。但在我看来,你最好把它推广到顶级类型。我还建议将其命名为
Tetromino
(单数),并使值名称遵循Java命名约定:
NO\u-SHAPE
OTHER\u-SHAPE
(尽管我认为这些都不是真正的值)。

改用IDE——它使您的编程生活更轻松,也更少痛苦。而不是
私有tetrominos[]董事会使用
私有形状。Tetrominoes[]板改用IDE-它让你的编程更简单,更轻松使用
私有形状。Tetrominoes[]板@AndrewTobilko:不,因为它在同一个包中。看,哦,我错过了他们来自同一个包裹,+1Ah好的,谢谢,这就成功了。所以我必须经常参考它的形状。每次都要使用这个类吗?我没有办法喜欢导入形状。Tetrominoes,并称之为Tetrominoes,就像在IDE中一样?@Charas:你可以这样做-但是如果你不想将它视为嵌套类型,为什么要嵌套它呢?让它成为顶级类型。请注意,在IDE中可以执行的任何操作也可以在从命令行编译的常规源代码中执行。@AndrewTobilko:no,因为它在同一个包中。看,哦,我错过了他们来自同一个包裹,+1Ah好的,谢谢,这就成功了。所以我必须经常参考它的形状。每次都要使用这个类吗?我没有办法喜欢导入形状。Tetrominoes,并称之为Tetrominoes,就像在IDE中一样?@Charas:你可以这样做-但是如果你不想将它视为嵌套类型,为什么要嵌套它呢?让它成为顶级类型。请注意,在IDE中可以执行的任何操作也可以在从命令行编译的常规源代码中执行。