为什么不能使用SInner si = HelloWorld.new SInner();来创建对象

来源:7-7 Java 中的静态内部类

精慕门3907814

2019-01-14 17:48

使用SInner si = HelloWorld.new SInner();来创建对象,如果按照调用静态方法来看,这好像没什么毛病啊,但是为什么使用HelloWorld.会报错?

写回答 关注

3回答

  • qq_慕莱坞5437750
    2019-02-26 09:32:55

    当内部类为静态内部类时:创建对象是 内部类名 对象名=new 内部类名();

    当内部类为非静态内部类时:创建内部类对象时需要通过外部类对象:内部名 内部对象名=外部对象名.new 内部对象名();

    而此题内部类为静态内部类

  • 慕村3187174
    2019-01-19 15:57:17

    通过“HelloWorld.”可以调用出静态方法和静态属性。然后你是通过类名调用了一个静态类实例化后的一个实例,觉得是出现了语句逻辑错误,可以这样,SInner si=new HelloWorld.Sinner();才疏学浅的我是这样认为的,接受路过攻城狮斧正。祝学愉快

  • 慕少3069153
    2019-01-14 19:53:26

    HelloWorld并没有被实例化

    只有实例化后才可以这样使用

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530559 学习 · 6091 问题

查看课程

相似问题