靜態內部類(類內部類)
成員內部類(例項內部類)
方法內部類
匿名內部類
不能引用外部類的例項變數和例項方法
例項建立方式
public
class
outstaticinner
}class
newinner
不能引用外部類的類變數和類方法
不能有類成員變數和方法,可以有常量。
如果外部類的類方法m中或者類變數i的初始賦值,引用了內部類的類成員,那麼在呼叫m或者初始化i時會導致內部類的初始化,此時外部類的例項可能還沒有建立。而成員內部類是與其外部類例項繫結的,這顯然互相矛盾。
成員內部類是閉包
例項建立方式
public
class
outinstanceinner
}class
newinsinner
不能引用外部類的類變數和類方法
不能有static的成員變數和方法,可以有常量。
可用修飾符和方法變數一致(final)
不能引用外圍方法的區域性變數,除非是final的變數。
例項的建立方式,方法外部無法建立方法內部類的例項。
public
class outmethodinner
inner inner = new inner();
}}
根據匿名內部類所在位置決定其屬性
分類
public
class anonymousinner
public
static
void
main(string args)
}.method();
//介面式
new inte***ce()
}.method();
//引數式
run(new inte***ce()
});}
}class inherit
}inte***ce inte***ce
Java內部類小結
內部類 inner class 就是定義在乙個類裡面的類。與之對應,包含內部類的類被稱為外部類。內部類的主要作用 1.提供了更好的封裝。即可以隱藏在外部類之內,不允許同乙個包中的其他類訪問。2.內部類可直接訪問外部類的所有資料。3.事實上,內部類所實現的功能使用外部類同樣可以實現,只是有時使用內部類...
內部類學習小結
1.內部類能夠非常好的實現隱藏,一般的非內部類,是不同意有 private 與protected許可權的,但內部類能夠。我覺得在如今soa的環境下,隱藏實現已經習慣通過介面的形式來表達了,用內部類來隱藏實現顯得有些小家子氣。2.內部類擁有外圍類的全部元素的訪問許可權。這樣的說法感覺有些牽強,除非說內...
JAVA學習 內部類
靜態成員不能訪問非靜態成員。內部類可以訪問外部類private成員,反之不成立。非靜態內部類不能擁有靜態成員。介面內部類預設為public static。子類繼承內部類父類,會自動呼叫非靜態內部類構造器,此時子類構造器必須存在乙個外部類物件。inte ce jiekou abstract class...