•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的。