精慕门3907814
2019-01-14 17:48
使用SInner si = HelloWorld.new SInner();来创建对象,如果按照调用静态方法来看,这好像没什么毛病啊,但是为什么使用HelloWorld.会报错?
当内部类为静态内部类时:创建对象是 内部类名 对象名=new 内部类名();
当内部类为非静态内部类时:创建内部类对象时需要通过外部类对象:内部名 内部对象名=外部对象名.new 内部对象名();
而此题内部类为静态内部类
通过“HelloWorld.”可以调用出静态方法和静态属性。然后你是通过类名调用了一个静态类实例化后的一个实例,觉得是出现了语句逻辑错误,可以这样,SInner si=new HelloWorld.Sinner();才疏学浅的我是这样认为的,接受路过攻城狮斧正。祝学愉快
HelloWorld并没有被实例化
只有实例化后才可以这样使用
Java入门第二季 升级版
530646 学习 · 6091 问题
相似问题