类似文章:
public class InnerClassJava {
private int a;
public class Inner {
public void hello() {
System.out.println(InnerClassJava.this.a);
}
}
public static class Inner2 {
public void hello2() {
// System.out.println(InnerClassJava.this.a);
}
}
public static void main(String... args) {
InnerClassJava innerClassJava = new InnerClassJava();
Inner inner = innerClassJava.new Inner();
Inner2 inner2=new Inner2();
View view = new View();
view.setOnClickListener(new OnClickListener() {
public void onClick() {
}
});
}
}
非静态内部类是持有外部类的状态的,因此在它内部可以持有外部类的私有对象,
而静态内部类不可以,
它们的声明也不一样:
public static void main(String... args) {
InnerClassJava innerClassJava = new InnerClassJava();
Inner inner = innerClassJava.new Inner();
Inner2 inner2=new Inner2();
View view = new View();
view.setOnClickListener(new OnClickListener() {
public void onClick() {
}
});
}