当前位置: 首页 > 知识库问答 >
问题:

不是封闭类Java

慕容宇
2023-03-14

我正在尝试制作一个俄罗斯方块游戏,我得到了编译器错误

形状不是封闭类

当我尝试创建对象时

public class Test {
    public static void main(String[] args) {
        Shape s = new Shapes.ZShape();
    }
}

我对每个形状都使用内部类。这是我的部分代码

public class Shapes {
    class AShape {
    }
    class ZShape {
    }
}

我做错了什么?

共有2个答案

韦寒
2023-03-14

假设RetailerProfileModel是您的主类,RetailerPaymentModel是其中的一个内部类。可以在类外部创建内部类的对象,如下所示:

RetailerProfileModel.RetailerPaymentModel paymentModel
        = new RetailerProfileModel().new RetailerPaymentModel();
孙翰墨
2023-03-14

zshape不是静态的,因此它需要外部类的实例。

最简单的解决方案是使ZShape和任何嵌套类静态(如果可以的话)。

我还将使任何字段finalstatic final都可以。

 类似资料:
  • 所以我有类构造函数: 在我的存储库类中,我有: 那我该如何做到这一点呢?让我的最终侦听器类能够在healthrepository类中设置DSConnectionStatus?

  • 问题内容: 在什么情况下可能会得出与之不同的结果? 我认为这可能与外部类的子类实例化一个未声明为静态的内部类有关,但我无法以这种方式获得区别: 输出: 问题答案: 在此处找到http://kickjava.com/1139.htm#ixzz1mv2nEWg7: “具有getDeclaringClass的替代项是,在Java语言规范中,匿名内部类不计为类的成员,而命名内部类为。因此,此方法为匿名类返

  • 问题内容: 这个错误是什么意思? 嵌套类型HelloWorld无法隐藏封闭类型 其中HelloWorld是Java文件名。这是您需要的代码: 问题答案: 您已经两次定义了HelloWorld类。删除一个级别,就可以了。

  • 问题内容: 出于教育目的,我尝试制作一个服务器和一个客户端,其中服务器从多个客户端接收数据并回显每条消息。问题是,当我尝试让服务器一次将回显发送到所有客户端时。 我搜寻并回答了许多类似的问题,但是没有一个对我有帮助。希望你能指出我的错误。提前致谢。 问题答案: 您的嵌套类需要外部类的一个实例,因为它不是静态的-但你不 具备 外部类的一个实例。 尝试制作两个嵌套类。看起来他们无论如何都不 需要 引用

  • 问题内容: 我正在阅读面向对象的Javascript,并发现了闭包的概念。我不太明白为什么以及何时使用它。其他语言(例如Java)也有闭包吗?我基本上想了解了解闭包的概念如何帮助我改善编码。 问题答案: 闭包是具有绑定变量的第一类函数。 大致意味着: 您可以将闭包作为参数传递给其他函数 闭包存储创建时存在的词法作用域中某些变量的值 Java最初没有对闭包的语法支持(Java 8中引入了闭包),尽管

  • 我需要一些帮助。我得到: 这是我的密码: 我必须对一些文件使用unicode值,因为我使用的是xhtml。 任何帮助都会很好!