Java final意思
在Java程式語言中,final
關鍵字具有多種用途,可以用來修飾類、方法或者變數。以下是final
在不同情況下的意思:
-
修飾類(Class): 當一個類被聲明為
final
時,它就不能被繼承。這意味著其他程式設計師無法創建該類的子類。final
類通常用於那些不應該被繼承的類,例如標準庫中的String
類。final class FinalClass { // ... }
-
修飾方法(Method): 當一個方法被聲明為
final
時,它就不能被重寫(overridden)。通常,當子類不需要或不應該重寫父類的方法時,可以使用final
修飾方法。class Parent { final void finalMethod() { // ... } }
-
修飾變數(Variable): 當一個變數被聲明為
final
時,它表示該變數一旦被賦值,其值就不能被改變。final
變數可以是在編譯時(compile-time)初始化的,也可以是在運行時(runtime)初始化的。-
編譯時初始化的
final
變數: 必須在聲明時或者在同一個聲明語句中初始化,不能在之後被改變。final int num = 10; // 或者 final int num; num = 10; // 必須在聲明時或者同一個語句中初始化
-
運行時初始化的
final
變數(也稱為final
引用): 可以在聲明時或者在構造函式中初始化,但不能在之後被改變。final Person person = new Person("Alice"); // 或者 final Person person; public SomeClass() { person = new Person("Bob"); }
final
變數可以是基本類型,也可以是對象引用。如果是對象引用,final
保證的是引用本身不能被改變,但引用所指向的對象的內容可以改變。final Person person = new Person("Alice"); person.setName("Bob"); // 這是允許的,因為對象內容可以改變 person = new Person("Charlie"); // 這是不允許的,因為引用不能改變
-
總結一下,final
關鍵字用於:
- 類:防止繼承。
- 方法:防止方法被重寫。
- 變數:確保變數值不會被改變。