下面的代码中外部类访问了内部类的私有成员,运行成功,为什么?
public class Outer {
public class Inner {
private int i=0;
private Inner() {
this.i=1;
}
} public Inner getInner() {
return new Inner();
} public static void main(String[] args) {
Outer outer = new Outer();
Inner inner = outer.getInner();
System.out.println(inner.i);
}
}
下面的代码运行成功,为什么???
public class Outer {
public class Inner {
private int i=0;
private Inner() {
this.i=1;
}
} public Inner getInner() {
return new Inner();
} public static void main(String[] args) {
Outer outer = new Outer();
Inner inner = outer.getInner();
System.out.println(inner.i);
}
}
public class Outer {
public class Inner {
private int i=0;
private Inner() {
this.i=1;
}
} public Inner getInner() {
return new Inner();
} public static void main(String[] args) {
Outer outer = new Outer();
Inner inner = outer.getInner();
System.out.println(inner.i);
}
}
下面的代码运行成功,为什么???
public class Outer {
public class Inner {
private int i=0;
private Inner() {
this.i=1;
}
} public Inner getInner() {
return new Inner();
} public static void main(String[] args) {
Outer outer = new Outer();
Inner inner = outer.getInner();
System.out.println(inner.i);
}
}
内部类现在用得还是比较多
可能在jdk7就不会用那么多了哦
可能大部分要被"闭包函数"代替
去sun看看啊
private modifier—the field is accessible only within its own class
我们可以认为,在Outer里也可以访问到i成员变量