平时不太用java的inner class,也就知道里面inner class可以访问外部对象的实例成员。
今天碰巧试了一下C#和java的嵌套类的区别,感觉java的嵌套类其实更像是嵌套对象的样子。
而C#的嵌套类则就是类定义的嵌套的感觉只可以访问父类的静态成员。
还发现了java的一个有趣的语法 x.new inner(); (x是一个Outer对象)
class Outer {
class Inner {
private foo() {
System.out.println(outerString);//ok but will fail in C#
}
}
private String outerString;
public void main (String[] args) {
Outer outer = new Outer();
Inner inner = outer.new Inner(); // interesting new
}
}
今天碰巧试了一下C#和java的嵌套类的区别,感觉java的嵌套类其实更像是嵌套对象的样子。
而C#的嵌套类则就是类定义的嵌套的感觉只可以访问父类的静态成员。
还发现了java的一个有趣的语法 x.new inner(); (x是一个Outer对象)
class Outer {
class Inner {
private foo() {
System.out.println(outerString);//ok but will fail in C#
}
}
private String outerString;
public void main (String[] args) {
Outer outer = new Outer();
Inner inner = outer.new Inner(); // interesting new
}
}