內部類
好處:
- 可以方便的訪問包裝類的成員
- 可以更清楚的組織邏輯,防止不應該被其他類訪問的類進行訪問
何時使用:
- 該類不允許或不需要其他類訪問的時候
——在類中直接定義的內部類
如果函數的局部變量(函數的形參也是局部變量),內部類的成員變量,外部類的成員變量重名,我們應該按下面的程序代碼所使用的方式來明確指定我們真正要訪問的變量。
public class Outer{
private int size;
public class Inner{
private int size;
public void doStuff(int size){
size++;//引用的是doStuff函數的形參
this.size++;//引用的是Inner類中的成員變量
Outer.this.size++;//引用的Outer類中的成員變量
}
}
}
內部類如何被外部引用
ClassOuter{
Privateint size = 10;
Publicclass Inner{
Public void doStuff(){
System.out.println(++size);
}
}
}
Publicclass TestInner{
Public static voidmain(String[] args){
Outer outer = new Outer();
Outer.Inner inner =outer.new Inner();
Inner.doStuff();
}
}
------在方法中定義內部類
嵌套類並非只能在類裏定義,也可以在幾個程序塊的範圍內定義內部類。例如,在方法中,或者在for循環體內,都可以定義嵌套類部類。
在方法中定義的內部類只能訪問方法中的final類型的局部變量,用final定義的局部變量相當於是一個常量,它的生命週期超過方法運行的生命週期。