static資料的初始化

2021-05-27 04:49:31 字數 1030 閱讀 9078

class bowl

void f1(int marker)

}class table

void f2(int marker)

static bowl bowl2=new bowl(2);

}class cupboard

void f3(int marker)

static bowl bowl5=new bowl(5);

}public class staticinitialtest

static table table = new table();

static cupboard cupboard=new cupboard();

執行的結果是「

bowl :(1)

bowl :(2)

table()

f1():1

bowl :(4)

bowl :(5)

bowl :(3)

cupboard()

f1():2

creating new cupborad() in main

bowl :(3)

cupboard()

f1():2

creating new cupboard() int main

bowl :(3)

cupboard()

f1():2

f2():1

f3():1

作為程式的執行入口main函式

main函式先執行

static table table = new table();

new 乙個table物件後將執行

static bowl bowl1=new bowl(1);

static bowl bowl2=new bowl(2);

在執行system.out.println("table()");

bowl2.f1(1);

總之,現執行為static的,分配記憶體

static cupboard cupboard=new cupboard();

static 型別初始化

在初始化時,先初始化static型別變數,再初始化普通變數,再初始化建構函式。如下程式 class a void f int i class b void f2 int i static a a2 new a 2 class c void f3 int i static a a5 new a 5 p...

static靜態初始化塊

j a 中可以通過初始化塊進行資料賦值。如 在類的宣告中,可以包含多個初始化塊,當建立類的例項時,就會依次執行這些 塊。如果使用 static 修飾初始化塊,就稱為靜態初始化塊。需要特別注意 靜態初始化塊只在類載入時執行,且只會執行一次,同時靜態初始化塊只能給靜態變數賦值,不能初始化普通的成員變數。...

static成員變數定義初始化

static成員變數不僅可以通過靜態成員函式來改變其值,還可以通過建構函式改變其值。其中靜態的建構函式僅僅能夠改變靜態的成員變數,一般建構函式可以改變靜態成員變數或者其他成員變數。以下是建構函式可以改變靜態成員變數的值的 class atest static a int atest a 0 這裡不能...