java final變數 方法 類

2021-08-18 08:14:13 字數 1606 閱讀 5893

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 建構函...