1、內部類
可以在一個類中再定義一個類,這樣的類稱作當前類中的內部類,而包含內部類的類稱爲內部類的外嵌類。內部類的外嵌類在內部類中仍然有效,內部類中的方法也可以調用外嵌類的方法。
內部類的類體中不可以聲明類變量和類方法(使用static修飾)。內部類僅供它的外嵌類使用,其他類不可以用某個類的內部類聲明對象。
2、匿名類與子類
Java允許直接使用一個類的子類的類體創建一個子類對象。例如,假設Bank是一個類,那麼下列代碼就是用Bank的一個子類(不必顯示地事先定義這個子類,因此該子類是一個匿名類)創建對象:
new Bank(){
匿名類的類體
};
使用匿名類時,必然是在某個類中直接用匿名類創建對象,因此匿名類一定是內部類。
如果某個方法的參數是Bank類型,那麼經常使用匿名類創建一個對象,並將對象的引用傳遞給方法的參數。例如,對於
void showMoney(Bank bank)
其中的參數bank是Bank類型,那麼在調用showMoney時,可以向showMoney方法的參數bank傳遞一個匿名類(Bank的一個子類)的對象,例如:
void showMoney(new Bank(){
Bank類的子類的類體
}) //注意這裏最後的右小括號