Java无法在另一个java文件中找到类的符号,但在同一目录

时间:2016-06-22 08:44:38

标签: java

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

例如,在同一目录中,我有2个java文件,一个名为Shape.java,另一个名为Board.java。在我的Shape.java中,我有一个名为Tetrominoes的类,现在我如何在Board.java中使用这个Tetrominoes类。我知道使用导入Shape.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 []板;”

这是为什么?我应该怎么解决这个问题?先感谢您。请问我是否有任何不清楚或我需要发布的其他内容,我会尽快更新我的问题。

1 个答案:

答案 0 :(得分:4)

您的Tetrominoes枚举嵌套在Shape中。所以可以将其称为:

private Shape.Tetronminos[] board;

...但在我看来,最好将它推广到顶级类型。我还建议调用它Tetromino(单数)并使值名称遵循Java命名约定:NO_SHAPEOTHER_SHAPE(尽管我认为这些不是真正的值)