您好,登錄后才能下訂單哦!
這篇“Java中final如何使用”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Java中final如何使用”文章吧。
final:最終的
final 可以用來修飾的結構:類、方法、變量
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 標記的成員變量必須在聲明(顯式初始化)時或在 每個構造器中或代碼塊中顯式賦值,然后才能使用。
如:final double MY_PI = 3.14;
使用 final 修飾局部變量時,表明此形參是一個常量。當我們調用此方法時,給常量形參賦一個實參。一旦賦值以后,就只能在方法體內使用此形參,且不能進行重新賦值。
//題目一: 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的靜態初始化塊"); } { System.out.println("Root的普通初始化塊"); } public Root(){ super(); System.out.println("Root的無參數的構造器"); } } class Mid extends Root{ static{ System.out.println("Mid的靜態初始化塊"); } { System.out.println("Mid的普通初始化塊"); } public Mid(){ super(); System.out.println("Mid的無參數的構造器"); } public Mid(String msg){ //通過this調用同一類中重載的構造器 this(); System.out.println("Mid的帶參數構造器,其參數值:" + msg); } } class Leaf extends Mid{ static{ System.out.println("Leaf的靜態初始化塊"); } { System.out.println("Leaf的普通初始化塊"); } public Leaf(){ //通過super調用父類中有一個字符串參數的構造器 super("小老師ir"); System.out.println("Leaf的構造器"); } } public class LeafTest{ public static void main(String[] args){ new Leaf(); System.out.println(); new Leaf(); } } /*output: Root的靜態初始化塊 Mid的靜態初始化塊 Leaf的靜態初始化塊 Root的普通初始化塊 Root的無參數的構造器 Mid的普通初始化塊 Mid的無參數的構造器 Mid的帶參數構造器,其參數值:小老師ir Leaf的普通初始化塊 Leaf的構造器 Root的普通初始化塊 Root的無參數的構造器 Mid的普通初始化塊 Mid的無參數的構造器 Mid的帶參數構造器,其參數值:小老師ir Leaf的普通初始化塊 Leaf的構造器 */
以上就是關于“Java中final如何使用”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。