您好,登錄后才能下訂單哦!
這篇“Java中final如何使用”文章的知識點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Java中final如何使用”文章吧。
final:最終的
final 可以用來修飾的結(jié)構(gòu):類、方法、變量
final 用來修飾一個類,表示此類不能被其它類所繼承,提高安全性,提高程序的可讀性。
比如:String類、System類、StringBuffer類…
代碼演示:
final class A{
}
class B extends A{ //錯誤,不能被繼承。
}
final 用來修飾方法:表明此方法不能被子類重寫。
比如:Object
類中getClass();
代碼演示:
class A { public final void print() { System.out.println("A"); } } class B extends A { public void print() { // 錯誤,不能被重寫。 } }
final 修飾的變量(成員變量或局部變量)稱為常量。名稱大寫,且只能被賦值一次。
static final 用來修飾屬性:全局常量。
代碼演示:
class A { private final String INFO = "嘻嘻"; //聲明常量 public void print() { //INFO = "哈哈"; //The final field A.INFO cannot be assigned } }
final 標(biāo)記的成員變量必須在聲明(顯式初始化)時或在 每個構(gòu)造器中或代碼塊中顯式賦值,然后才能使用。
如:final double MY_PI = 3.14;
使用 final 修飾局部變量時,表明此形參是一個常量。當(dāng)我們調(diào)用此方法時,給常量形參賦一個實參。一旦賦值以后,就只能在方法體內(nèi)使用此形參,且不能進(jìn)行重新賦值。
//題目一: public class Test1 { public int addOne(final int x) { // return ++x; //Cannot assign a value to final variable 'x' return x + 1; } } //題目二: public class Something { public static void main(String[] args) { Other o = new Other(); new Something().addOne(o); } public void addOne(final Other o) { // o = new Other(); o.i++; } } class Other { public int i; } //題目三: class Root{ static{ System.out.println("Root的靜態(tài)初始化塊"); } { System.out.println("Root的普通初始化塊"); } public Root(){ super(); System.out.println("Root的無參數(shù)的構(gòu)造器"); } } class Mid extends Root{ static{ System.out.println("Mid的靜態(tài)初始化塊"); } { System.out.println("Mid的普通初始化塊"); } public Mid(){ super(); System.out.println("Mid的無參數(shù)的構(gòu)造器"); } public Mid(String msg){ //通過this調(diào)用同一類中重載的構(gòu)造器 this(); System.out.println("Mid的帶參數(shù)構(gòu)造器,其參數(shù)值:" + msg); } } class Leaf extends Mid{ static{ System.out.println("Leaf的靜態(tài)初始化塊"); } { System.out.println("Leaf的普通初始化塊"); } public Leaf(){ //通過super調(diào)用父類中有一個字符串參數(shù)的構(gòu)造器 super("小老師ir"); System.out.println("Leaf的構(gòu)造器"); } } public class LeafTest{ public static void main(String[] args){ new Leaf(); System.out.println(); new Leaf(); } } /*output: Root的靜態(tài)初始化塊 Mid的靜態(tài)初始化塊 Leaf的靜態(tài)初始化塊 Root的普通初始化塊 Root的無參數(shù)的構(gòu)造器 Mid的普通初始化塊 Mid的無參數(shù)的構(gòu)造器 Mid的帶參數(shù)構(gòu)造器,其參數(shù)值:小老師ir Leaf的普通初始化塊 Leaf的構(gòu)造器 Root的普通初始化塊 Root的無參數(shù)的構(gòu)造器 Mid的普通初始化塊 Mid的無參數(shù)的構(gòu)造器 Mid的帶參數(shù)構(gòu)造器,其參數(shù)值:小老師ir Leaf的普通初始化塊 Leaf的構(gòu)造器 */
以上就是關(guān)于“Java中final如何使用”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。