关于java中成员内部类的问题,感谢指导

package outerAndInnerClass;
public class Outer {
    private int x = 100;
    private String y = "hello world";
    // 成员内部类
    class Inner {
        private String y = "hello";
        private void innerMethod() {
        System.out.println("内部类中的y是:"+y);
        System.out.println("外部类中的y是:"+Outer.this.y);
        System.out.println("外部类中的x是:"+x);
        // 内部类调用外部类中的方法
        outerMethod();
        System.out.println("调用外部类方法后,外部类中的x是:"+x);
        }
    }
    public void outerMethod() {
        x++;
    }
    // 外部类方法中创建内部类对象
    public void makeInner() {
        Inner in = new Inner();
    }
    public static void main(String[] args) {
        // 创建外部类对象out
        Outer out = new Outer();
        // 通过外部类对象创建内部类对象(类似实例变量需要通过对象来访问)
        Outer.Inner in = out.new Inner();
        // 外部类调用内部类中的方法
        in.innerMethod();
    }
}

上述代码中,

问题1:21-23行是不是错误的?如果是错的,怎么不报错?

问题2:那26-28行,我还见过这样写的:

Outer out = new Outer();
Inner in = out.new Inner();
通过外部类对象创建内部类对象的语法规范到底是哪个?还是说有好几种方法(如果有,烦请介绍下)?
fafagagag
浏览 1062回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP