【发布时间】:2013-12-13 16:48:36
【问题描述】:
我正在尝试制作俄罗斯方块游戏,但出现编译器错误
Shape is not an enclosing class
当我尝试创建一个对象时
public class Test {
public static void main(String[] args) {
Shape s = new Shapes.ZShape();
}
}
我正在为每个形状使用内部类。这是我的部分代码
public class Shapes {
class AShape {
}
class ZShape {
}
}
我做错了什么?
【问题讨论】:
-
new Shape().new ZShape();。ZShape类需要一个封闭的实例来实例化。 -
将内部类移动到单独的文件中
-
@Dimmduh 评论应该是这种情况下的答案。它们不应该是内部类。移动它们将确定存在的 Shape 类的其他问题。
-
这里不回答这个问题,但我可以建议在
AShape和ZShape扩展基类Shapes的地方使用inheritance。对于这个问题,嵌套类并不是一个很好的设计。
标签: java inner-classes