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();通过外部类对象创建内部类对象的语法规范到底是哪个?还是说有好几种方法(如果有,烦请介绍下)?
相关分类