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();通过外部类对象创建内部类对象的语法规范到底是哪个?还是说有好几种方法(如果有,烦请介绍下)?
添加回答
举报
0/150
提交
取消