JAVA筆記-內部類

成員內部類
普通調用方法:Outer.Inner oi=new Outer().new Inner();
靜態調用方法:1.Outer.Inner oi=new Outer.Inner();
     2.Outer.Inner.show();
內部類用private修飾:
無法再main函數中調用,怎麼辦呢?
在外部類中創建一個方法,用來判定是否可以調用此內部類。
class Outer{
private class Inner{
public void show(){}
}

public void use(){
if(被允許){
Inner in=new Inner();
in.show();
}
}
}

面試題:填空輸出30,20,10
class Outer{
public int num=10;
class Inner{
public int num=20;
public void show(){
syso(???);//num,就近原則
syso(???);//this.num 
syso(???);//new Outer().num  或 Outer.this.num
}
}
}


局部內部類
面試題:
局部內部類訪問局部變量的注意事項?
局部變量必須用final修飾
因爲,局部變量會隨着方法的調用而調用,方法調用完畢,就會消失
而局部內部類屬於堆內存,不會立即消失,所以要用final修飾,變成
常量,就算消失了,在內存中存儲的數據還可以使用。

匿名內部類:
格式:new 類名或接口名(){};
本質:是一個繼承了子類或實現接口的子類匿名對象
面試題:
interface Inter{
void show();
}
class Outer{
//此處填空;
/*
public static Inter method() {
return new Inter(){
public void show() {
System.out.println("HelloWorld");
}
};
}
*/
}


class Test{
public static void main(String[] args) {
Outer.method().show();
}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章