final資料
class value
}class finaldata
public final int valueone = 9;
public static final int value_two = 99;
public static final int value_three = 39;
public final int i4 = rand.nextint(20);
static final int int_5 = rand.nextint(20);
public value v1 = new value(11);
public final value v2 = new value(22);
public static final value val_3 = new value(33);
public final int a = ;
public string tostring()
}public class main
// fd1.v2 = new value(0); //can't change reference
// fd1.val_3 = new value(1);
// fd1.a = new int[3];
system.out.println(fd1);
system.out.println("creating new finaldata");
finaldata fd2 = new finaldata("fd2");
system.out.println(fd1);
system.out.println(fd2);}}
執行結果:
當用final去修飾基本資料型別時,資料被初始化後,不能改變資料的值;被final修飾的物件引用,不能改變它引用的物件,而它引用的物件中的非final資料,可以被修改。同樣,static修飾的資料,只能被初始化一次,如int_5;而非static的final資料,隨新物件的建立,會被重新初始化,而後不能改變它的值。
空白final資料:那麼必須在構造方法中對其初始化,如果有多個構造方法,則每個方法都要對其初始化
class poppet
}class blankfinal
public blankfinal(int x)
}public class main
}
final方法被final方法修飾的去修飾方法,有兩個作用:
1)該方法被鎖定,任何繼承類都不能覆蓋它,private方法隱式為final修飾
2)final方法會被內嵌呼叫
final類
被final修飾的類,不能被繼承,因為不能被繼承,則類中的方法預設為final。
Java final變數與final類的記憶體模型
對於 final 域,編譯器和處理器要遵守兩個重排序規則 舉個例子 public class finalexample public static void writer public static void reader 這裡假設乙個執行緒 a 執行 writer 方法,隨後另乙個執行緒 b 執行...
Java final關鍵字用來修飾類 方法 屬性
1.final修飾類 這個類不能被繼承。如 string類 stringbuffer類 system類。2.final修飾方法 不能被重寫。如 object類的getclass 方法。3.final修飾屬性 此屬性就是乙個常量,一旦初始化就不可再被賦值。習慣上,常用大寫字元表示。1 此常量不能使用預...
類變數 例項變數 類方法 例項方法 靜態方法。
classa aa 1def init self,x,y self.x x self.y y a a 2,3 a 是例項 aa 是類變數 如果用a.aa 100 修改的是類的變數 a.aa 101 會在a例項中建立乙個名叫aa的屬性,並賦值,如果本身就有aa屬性,才修改。class date 建構函...