1. 内部类访问外部类的成员变量:Outer.this.size
public class Outer { private int size; public class Inner1 { private int size; public void display(int size) { size++; // 引用的是display函数的形参 this.size++; // 引用的是Inner类中的成员变量 Outer.this.size++; // 引用的是Outer类中的成员变量 } } }2. 内部类如何被外部引用:Outer.Inner inner = outer.new Inner()
要创建一个内部类的实例对象,必须先创建一个外部类的实例对象
public class TestInner { public static void main(String[] args) { Outer outer = new Outer(); Outer.Inner inner = outer.new Inner(); inner.display(); } } class Outer{ private int size = 10; public class Inner{ public void display(){ System.out.println(size); } } }3. 在方法中定义的内部类如果要访问方法中的局部变量,局部变量必须声明为final
public class Outer { public void test(){ final int x = 0; class Inner { void display(){ System.out.println(x); } } } }
4. 外部类可以直接访问静态内部类,无需创建外部类对象
class Outer { static class Inner{ } } public class Test{ public static void main(String[] args) { Outer.Inner inner = new Outer.Inner(); } }
原文:http://blog.csdn.net/zdp072/article/details/43457389