1.final 關鍵字
final關鍵字主要用在三個地方:變量、方法、類。
- final修飾變量:final修飾一個類時,表明這個類不能被繼承。
- final修飾方法:final修飾方法,方法不可以重寫,但是可以被子類訪問 【前提:方法不是 private 類型】。
- fainal修飾類:如果被final修飾的是基本數據類型的變量,則其數值一旦在初始化之后便不能更改;如果是引用類型的變量,則在對其初始化之后便不能再讓其指向另一個對象。
2.final修飾變量(成員變量、局部變量)
首先,變量分為成員變量和局部變量
2.1 final修飾成員變量
成員變量必須在定義時或者構造器中進行初始化賦值
public class FinalAndVariable {public int t; //編譯成功public final int b; //編譯失敗public final int c = 1; //編譯成功
}
在構造方法中將成員變量進行初始化,定義成員變量的時候就可以不用初始化
public class FinalAndVariable {public int t;public final int b; //編譯成功public final int c = 1; //編譯成功public FinalAndVariable() { //構造方法b=2; //在構造方法中將成員變量b進行初始化}
}
2 .2final修飾局部變量
只需要保證在使用之前被初始化賦值即可
3.final變量和普通變量的區別
當final變量修飾基本數據類型以及String類型時,編譯期間能知道它的確切值時,編譯器會把它當做編譯期常量使用。
被final修飾的引用變量一旦初始化賦值之后指向的對象不可變但該對象的內容可變。
4.final與static的藕斷絲連
static的使用始終離不開final字眼,二者可謂藕斷絲連,常常繁見
static修飾的在類加載的時候就加載完成了(初始化),而且只會加載一次也就是說初始化一次,所以不會發生變化!
final修飾基本數據類型的變量時,則其數值一旦在初始化之后便不能更改。