•final變量
如果在變量前加final關鍵字,則這個變量一旦被初始化,便不可再改變。
如果一個final變量是類成員變量,則必須被初始化,且只能被初始化一次。
方法中的參數也可以是final變量。這在我們需要傳遞引用型的變量時非常有用,因為有時候我們并不希望調用函數修改該變量而影響到原函數中對象的值。因此將引用型變量設為final類型可以有效方式變量被調用參數修改。此時在調用方法中只可以使用該變量,但不能對其做任何修改。
void test(final int a){
//can not modify a
}
•final方法
若一個類中的某個方法是final的,則該類的子類可以直接使用這個方法,但不能覆蓋這個方法。
有些編譯器會再調用final方法時,直接將final方法的主體插到調用處來提高效率,而不是采用保存斷點、壓棧等常規方法。
•final類
如果一個類是final的,那么它不能被繼承。因此final類是一個葉子類,它不能是abstract的。final類中的方法肯定是final的(但并不需要在方法中顯式添加final關鍵字,當然添加也無所謂),final類的變量可以是final或非final的。