final 可以用來修飾 類,方法,變量(成員變量和局部變量)
1 修飾類
表明這個類不能被繼承,final 類中的所有成員方法都會被隱式的指定爲 final方法
在使用final修飾類的時候,要注意謹慎選擇,除非這個類真的在以後不會用來繼承或者出於安全的考慮,儘量不要將類設計爲final類
2 修飾方法
可以把該方法鎖住,被 final 修飾的方法,在子類中不能被覆蓋
類的 private方法,會隱式得被指定爲 final方法
3 修飾變量
final 變量,如果是基本數據類型的變量,則其數值,一旦初始化,便不能再更改;如果是引用類型的變量,在初始化之後,便不能再指向另一個對象(但是其內容可以改變)
class MyClass {
void changeValue(final StringBuffer buffer) {
buffer.append("world");
}
}
public class Test {
public static void main(String[] args) {
MyClass myClass = new MyClass();
StringBuffer buffer = new StringBuffer("hello");
myClass.changeValue(buffer);
System.out.println(buffer.toString());
}
}
// 輸出結果
helloworld
class MyClass {
public int i = 0;
}
public class Test {
public static void main(String[] args) {
final MyClass myClass = new MyClass();
System.out.println(++myClass.i);
}
}
// 輸出結果
1