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();}}