詳解Java中final的用法。本站提示廣大學習愛好者:(詳解Java中final的用法)文章只能為提供參考,不一定能成為您想要的結果。以下是詳解Java中final的用法正文
概念
final 具有“弗成轉變的”的寄義,可以潤飾 非籠統類、非籠統成員辦法和變量。
注:
final 不克不及用來潤飾結構辦法,由於“辦法籠罩”這一概念僅實用於類的成員辦法,而不實用於類的結構辦法,父類的結構辦法和子類的結構辦法之間不存在籠罩的關系,是以用final潤飾結構辦法沒有任何意義。
父類頂用 private 潤飾的辦法不克不及被子類的辦法所籠罩,是以可以懂得為 private 類型的辦法默許是 final 類型的。
final 類
把類界說為 final,使這個類不克不及被繼續。詳細應用場景以下:
例如:JDK中的java.lang.String 類被界說為 final 類型。
public final class String{...}
final 辦法
在某些情形下,出於平安緣由,父類不許可子類籠罩某個辦法,此時可以把這個辦法聲明為 final 類型。
例如:JDK中的java.lang.Object 類中,getClass()辦法為 final 類型,而 equals() 辦法不為 final 類型。
一切 Object 的子類都可以籠罩 equals() 辦法,但不克不及籠罩 getClass() 辦法。
final 變量
用 final 潤飾的變量表現取值不會轉變的常量。
例如:JDK中 java.lang.Integer 類中界說了兩個常量。
public static final int MIN_VALUE = 0x80000000;
public static final int MAX_VALUE = 0x7fffffff;
final 變量具有以下特點:
public class Demo{ public static final int MAX_VALUE = 23; //靜態常量 public static final int MIN_VALUE = 10; //靜態常量 private final Date birthday = new Date(); //成員常量 }
靜態常量普通以年夜寫字母定名,單詞之間以“_”符號離開。
public class FinalTest { final int a = 1; //成員常量 默許初始化 static final int b = 2; //靜態常量 默許初始化 final int c; //成員常量 static final int d; //靜態常量 public FinalTest(){ c = 3; //成員常量 未默許初始化,可在結構函數中初始化 } static { d = 4; //靜態常量 未默許初始化,可在靜態代碼塊中初始化 } }
final 變量只能賦一次值,假如將援用類型的變量用 final 潤飾,該變量只能一直援用一個對象,但可以轉變對象的內容。
public class FinalTest { String str = ""; public void print(){ System.out.println(str); } public static void main(String[] args){ final FinalTest finalTest = new FinalTest(); finalTest.str = "xixihaha"; finalTest.print(); } }
總結:
現實法式中,經由過程 final 潤飾符來界說常量,目標為:
以上就是本文的全體內容,願望對年夜家的進修有所贊助。