java學習筆記《十一》內部類

2021-06-20 12:12:23 字數 1447 閱讀 7989

內部類提供了更好的封裝,可以把內部類隱藏在外部類之內,不允許同乙個包內的其他類訪問該類。假設需要建立乙個cow類,cow類需要組合乙個cowl物件,cowleg類只有在cow類裡才有效,離開cow類之後沒有任何意義。在這種情況下就可以把cowleg定義成cow的內部類,不允許其他類訪問cowleg

內部類成員可以訪問外部類的私有資料,因為內部類當作外部類的類成員,類成員之間可以互相訪問,但是外部類不能訪問內部類的實現細節,例如內部類的成員變數

匿名內部類適合用於建立那些僅僅需要一次使用的類

非靜態內部類

public class cow

public cow(double weight)

private  class cowleg

public void setlength(double length)

public double getlength()

public void setcolor(string color)

public string getcolor()

public void info() }

public void test()

public static void main(string args)

}當呼叫非靜態內部類的例項方法時,必須有乙個非靜態內部類例項,而非靜態內部類例項必須寄存在外部類例項裡

靜態內部類

乙個內部類用static修飾,這個內部類就是靜態內部類,這個靜態內部類屬於外部類本身,而不屬於外部類的物件。靜態內部類是外部類的乙個靜態成員,因此外部類的靜態方法,靜態初始化塊可以使用靜態內部類來定義變數,建立物件。外部類依然不能直接訪問靜態內部類的成員,但可以使用內部類的類名作為呼叫者來訪問靜態內部類的類成員,也可以使用靜態內部類物件作為呼叫者來訪問靜態內部類的例項成員

使用內部類

1.在外部類內部使用內部類

在外部類內部使用內部類時,與平常使用普通類沒有太大的區別

2.在外部類以外使用非靜態內部類

class out}}

public class createinnerinstance

}3.在外部類以外使用靜態內部類

class staticout}}

public class createstaticinnerinstance

}匿名內部類

匿名內部類必須繼承乙個父類或實現乙個介面,但最多只能繼承乙個父類,或實現乙個介面。匿名內部類不能使抽象類,匿名內部類不能定義構造器,因為匿名內部類沒有類名,但是匿名內部類可以定義例項初始化塊,通過例項初始化塊來完成構造器需要完成的事情。最常用的建立匿名內部類的方式是需要建立某個介面型別的物件

inte***ce chanpin

public class anonymoustest

public static void main(string args)

public string getname()

});}}

Java內部類學習筆記

size x large b 內部類概念 b size 所謂內部類 inner class 顧名思義,就是將乙個類定義在定義在另乙個類的內部。內部的類稱之為內部類 public class outer b 特點 b list 內部類可以很好的實現隱藏,可以使用protected private修飾符...

Java學習筆記 內部類

內部類在android中有著大量的運用 內部類提供了更好的封裝 內部類可以直接訪問外部類的私有資料 匿名內部類適合那些只需要使用一次的類。非靜態內部類不能擁有靜態成員。內部模擬外部類可以多使用三個修飾符 private protected static 將乙個類定義在另乙個類的裡面,對裡面那個類就稱...

JAVA學習筆記10 內部類 匿名內部類

內部類 內部類可以直接訪問外部類成員 包括私有成員 外部類要訪問內部類中的成員必須要建立內部類的物件 class outer public void method 內部類一般用於類的設計 分析事物時 發現該事物描述中還有事物 而且這個事物還在訪問被描述事物的內容 這時就可以將還有的事物用內部類來描述...