Java中final關鍵字如何使用?
final變數只能賦值一次,賦值的方式有三種:
1)宣告變數時直接賦值;
2)非靜態成員變數在{}塊中賦值,靜態成員變數在static{}塊中賦值;
3)非靜態成員變數在構造方法中賦值。
final修飾類
final類不能被繼承,因此不會有子類。final類中的方法不論是否有final修改,都是final的。
下面定義了一個簡單的final類:
public final class FinalClass { }
//下面的類繼承將會出現編譯錯誤
class Sub extends FinalClass { }
final修飾方法
final方法不能被override。若父類中的方法為final的,則子類不能override該方法,但可以呼叫該方法(父類的final方法)。
下面的程式試圖重寫final方法,將會引發編譯錯誤:
public class FinalMethod {
public final void say () { }
}
class Sub extends FinalMethod {
//下面方法將會出現編譯錯誤
public void say () { }
}
final成員變數
final修飾的變數不可被改變,意思是不能被重新賦值。由於final修飾的成員變數不能重新賦值,所以Java語規定:final修飾的成員變數必須由程式設計師顯示的指定初始值。
final修飾的類變數和例項變數指定初始值得地方如下:
1)類變數:必須在靜態初始化塊中指定初始值或宣告該類變數時指定初始值,而且只能二選一指定。
2)例項變數:必須在非靜態初始化塊、宣告該例項變數或構造器中指定初始值,而且只能三選一指定。
final修飾基本型別變數和引用型別變數的區別:
當final修飾基本型別變數時,改基本型別變數不能被改變。但對於引用型別變數而言,它儲存的僅僅只是引用,final只保證這個引用型別變數所引用的地址不會改變,即一直引用同一個物件,但這個物件完全可以發生改變。
本文來自千鋒教育,轉載請註明出處。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31548651/viewspace-2782196/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java中final關鍵字Java
- Java Final關鍵字Java
- Java 關鍵字之 finalJava
- java中的static和final關鍵字Java
- java基礎-關鍵字finalJava
- Java併發--final關鍵字Java
- Java 中 final 關鍵字有什麼用Java
- final關鍵字
- final關鍵字和static關鍵字
- Java基礎——final和static關鍵字Java
- final關鍵字深入解析
- Java面試題,深入理解final關鍵字Java面試題
- java中方法的終結者(final關鍵字)Java
- 在Java中this關鍵字的使用Java
- java中this關鍵字Java
- final關鍵字的作用(skycto JEEditor)
- 我去,你竟然還不會用 Java final 關鍵字Java
- 安卓開發(Java)中關於final關鍵字與執行緒安全性安卓Java執行緒
- Java 的包, 許可權修飾符與final關鍵字Java
- Java™ 教程(使用super關鍵字)Java
- java中的instanceof關鍵字Java
- java中的static關鍵字Java
- Java中this與super關鍵字Java
- 【Java基本功】一文讀懂final關鍵字的用法Java
- Java中transient關鍵字的作用Java
- java中static關鍵字的作用Java
- Java中的各種關鍵字Java
- final與static關鍵字的區別?(skycto JEEditor)
- 許可權修飾符和final關鍵字
- Java 中 instanceof 關鍵字 object instanceof ClassJavaObject
- [java]transient關鍵字Java
- Java native關鍵字Java
- 深入理解Java中的volatile關鍵字Java
- 多執行緒與高併發(五)final關鍵字執行緒
- J2SE入門(五) final關鍵字淺析
- Java volatile關鍵字作用Java
- Java volatile關鍵字解析Java
- Java 的 static 關鍵字Java