WEB开发网      婵犻潧鍊婚弲顐︽偟椤栨稓闄勯柦妯侯槸閻庤霉濠婂骸浜剧紒杈ㄥ笚閹峰懘鎮╅崹顐ゆ殸婵炴垶鎸撮崑鎾趁归悩鐑橆棄闁搞劌瀛╃粋宥夘敃閿濆柊锕傛煙鐎涙ê鐏f繝濠冨灴閹啴宕熼鍡╀紘婵炲濮惧Λ鍕叏閳哄懎绀夋繛鎴濈-楠炪垽鎮归崶褍妲婚柛銊ュ缁傚秹鏁撻敓锟� ---闂佹寧娲╅幏锟�
开发学院WEB开发Jsp 學習筆記:java初始化順序 阅读

學習筆記:java初始化順序

 2008-01-05 09:36:45 来源:WEB开发网 闂侀潧妫撮幏锟�闂佸憡鍨电换鎰版儍椤掑倵鍋撳☉娆嶄沪缂傚稄鎷�婵犫拃鍛粶闁靛洤娲ㄩ埀顒佺⊕閵囩偟绱為敓锟�闂侀潧妫撮幏锟�  闂佺ǹ绻楀▍鏇㈠极閻愬灚瀚梺鍨儏閳ь剙绉归弻銊р偓闈涙啞閻h京鈧敻鍋婇崰鏍х暦閿燂拷
核心提示:class Bowl { Bowl(int marker) { System.out.PRintln("Bowl(" + marker + ")"); } void f1() { System.out.println("Ok

  class Bowl {
Bowl(int marker) {
System.out.PRintln("Bowl(" + marker + ")");
}

void f1() {
System.out.println("Ok");
}
}

class Cupboard {
Bowl b1 = new Bowl(1);

static Bowl b2 = new Bowl(2);

Cupboard() {
System.out.println("Cupboard()");
}

static Bowl b3 = new Bowl(3);
}

class Table {
Table() {
System.out.println("Table()");
}
Table(String a,int i){
this();
System.out.println("Ok");
}
}

public class Order {
static Cupboard t1 = new Cupboard();

static Table t2;

Bowl t3 = new Bowl(10);

void print() {
t3.f1();
}

public static void main(String[] args) {
System.out.println("Creating new Cupboard() in main");
new Cupboard();
System.out.println("Creating new Cupboard() in main");
Order od = new Order();
od.t3.f1();
Table t4 = new Table("aa",1);
}
}

程序運行時:裝載Order.class,運行Order類中的static塊
static Cupboard t1 = new Cupboard();
這構造了一個Cupboard對象,構造對象時,會裝載Cupboard類,
也是先執行static塊
static Bowl b2 = new Bowl(2);//創建一個Bowl對象,過程和Cupboard一樣,會調用構造函數
static Bowl b3 = new Bowl(3);//同上
然後執行
Bowl b1 = new Bowl(1);//創建一個Bowl對象
然後執行構造函數Bowl()

接下來:
static Table t2;//這只是聲明,並沒有創建對象,不用理會
然後:
執行main函數中的語句
System.out.println("Creating new Cupboard() in main");
new Cupboard(); //注重的是,static只會初始化一次
System.out.println("Creating new Cupboard() in main");
Order od = new Order();//創建Order對象,同上
od.t3.f1();
Table t4 = new Table("aa",1);//創建了Table,注重這裡構造函數的調用this()就可以(需要了解重載)

Tags:java 初始化

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接