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 這裡不能...