1. 程式人生 > >介面,lambda表示式與內部類(一)

介面,lambda表示式與內部類(一)

關於Comparator介面的comparing方法中的鍵提取器函式:

還有thenComparing方法:

...一些瑣碎的東西

 

內部類

內部類是定義在另一個類中的類

使用內部類的原因:

A類包含B類,建立A類例項的過程中不會包含B類例項

b有一個隱式引用,指向了建立它的外部物件a

再具體一點的實現:

關於內部類的私有性:

關於內外類如何引用:

(上面也可以省略this)

在TimePrinter是一個公有內部類的情況下,則下面也成立:

 

內部類中宣告的靜態域的特殊之處:

 

內部類的實現:

 

一個問題:

外部類多了一個access$0靜態方法,用於給內部類提供訪問外部類的方法,但這種做法也存在安全隱患

 

區域性內部類

在一個方法中定義的類稱為區域性類

區域性類的作用域和隱藏性:

區域性類可以訪問包含它們的外部類,還可以訪問區域性變數(事實上為final,一旦賦值就不會改變)

 

下文中,TimePrinter是一個區域性類經過反射後的結果,beep是在方法中傳入的一個變數(一個final的型別)

 

 

突破final限制的方法: