內部類:把類a 定義到類b的內部,類a就被稱為內部類。
內部類分類:
a:成員內部類(類中方法外)
b:區域性內部類(方法中)
成員內部類的訪問特點:
a:內部類可以直接訪問外部類的成員,包括私有。
b:而外部類要想訪問內部類,必須建立內部類的物件。
c:在外部類外面要想訪問內部類不能直接訪問,可以間接訪問
外部類名.內部類名 變數= 外部類物件.內部類物件。
outer.inner oi = new outer().new inner();(不常用)
成員內部類的常用修飾符:
a:private 為了保證資料安全性(比較常見)。
b:static 為了方便呼叫
如果乙個內部類是靜態的,測試類要想直接訪問,這個時候建立物件的格式和outer.inner oi = new outer().new inner()不一樣,格式為:
外部類名.內部類名 變數 = new 外部類名.內部類名();
outer.inner oi = new outer.inner();
區域性內部類
面試題:
為什麼區域性內部類訪問區域性變數,區域性變數必須被final修飾呢?
a:防止在使用後資料發生改變。
b:加final是為了延長變數的生命週期。
匿名內部類:沒有名字的內部類
格式:new 類名或者介面名().方法名();
方式二:利用多型進行呼叫
一般來說,這種用法的時候,基本上都是乙個介面。而且介面中一般只有乙個方法。
如果開發中給我們乙個方法,引數是乙個介面,那麼我們就應該這樣解決:
方式一:自定義類實現介面,建立實現類的物件。
方式二:使用匿名內部類進行解決。
注意:a:如果乙個操作完畢後還可以呼叫其他方法那麼該操作返回的肯定是乙個物件。
內部類,匿名內部類
內部類 概念 自己想到的 內部類是一種可以直接訪問外部類的一類事物 內部類訪問外部類中的成員,包括私有。之所以可以訪問外部類的成員,是因為內部類持有了外部類的乙個引用,格式為 outer.this.x 外部類訪問內部類成員,需要宣告內部類的物件。其他類訪問內部類方法 當內部類處在成員變數的位置時,就...
內部類 匿名內部類
把類定義在其他類的內部,這個類就叫內部類。內部類分為 成員內部類 區域性內部類。內部類訪問特點 內部類可以直接訪問外部類的成員,包括私有。外部類訪問內部類的成員,必須建立物件。區域性內部類是定義在乙個方法或者乙個作用域裡面的類。public class outer 在區域性位置建立內部類物件,調內部...
內部類 匿名內部類
package org.lgy.study.innerclass public class anonymoustest public static void main string args public string getname public double getprice inte ce p...