標籤:技術分享 java內部類 new com font 代碼 構造 重寫 來講
什麼是內部類?內部類就是類中類,類裡面還有類,這就是叫做內部類。內部類可以在類裡面聲明類也可以聲明介面。8.10所示:
圖8.10
為什麼要用到內部類呢?內部類從代碼的角度來講,內部類只是簡化了代碼的操作,但是他沒有什麼太大的特點,如果急需一個類,不讓別人用,那麼這個類就可以什麼在內部。內部類在物件導向思想沒有太大的用處只不過是為了快捷,這就是內部類的用處。
內部類很多人都是為了簡單才聲明內部類,Java的規則是一個檔案裡面只放一個類就行了,但是非得在檔案裡面寫多個類那麼就不要違反他的規則他的規定是一個檔案只允許有一個帶public的類,而且只要帶了public那麼檔案名稱字就必須和類一致。
內部類他和類一樣也可以new對象可以調用方法,但是有一個規則內部類分為2種:靜態內部類和執行個體的內部類。
如果加上了static那麼這個類就是靜態內部類。如果沒有加static的那麼就為執行個體的內部類。可以把內部類看作為屬性,屬性有靜態和執行個體成員 如果是靜態那麼他裡面的靜態方法都可以用靜態類來訪問。如果是執行個體的那麼只能用對象去訪問。8.101所示:
圖8.101
如果靜態內部類,他裡面有私人的一個方法但是外部的類可以訪問他裡面的私人方法,因為內部類是屬於腹中的類,腹中的類的任何成員都是可以互相訪問的。
就比如孕婦裡面懷了一個孩子,他所有的營養都是母親來提供的。所以呢他是完全可以對內部類的私人成員訪問的。8.102所示:
圖8.102
如果外部的靜態方法去訪問執行個體的內部類這是不允許的,因為他是執行個體的,執行個體的必須是執行個體的才可以調用。執行個體內部類不允許申請靜態方法和靜態屬性,而靜態內部類可以申請執行個體的方法和執行個體的屬性。
內部類的訪問方式:
外類的靜態方法不能對執行個體內部類產生任何訪問,只能new對象訪問。 外類的執行個體方法可以對靜態和執行個體的內部類產生訪問。 外類可以訪問內部類的私人成員。
靜態內部類在外面構建方式:new 外部類.內部類();
執行個體的內部類在外面的構造方式:new 外部類().new 內部類();
無名內部類:
內部類還有無名內部類,書上或者程式員在android裡面都是用無名內部類多。那麼什麼叫做無名的內部類呢?就是沒有名字的內部類,這就叫做無名的內部類。
那麼無名內部類到底有什麼用處呢?比如有一個子類繼承了父類重寫了父類的方法,但是他裡面就只有一個方法,那麼寫一個子類去繼承這個類來重寫他的這個方法覺得太麻煩了沒有必要,寫內部類去繼承他也是覺得有點麻煩了,那麼我們就可以寫一個無名的內部類去重寫這個方法。
技術分享:www.kaige123.com
java內部類