close

1、             constructor

Instance Variable(實體變數)

l   Heap:代表物件的生存空間

l   Stackmethod的呼叫與變數的生存空間

l   primitive的變數只是存物件的參考,物件本身仍儲存在heap 

l   若物件中含有參考變數時,當該變數指派一個物件時,才會在heap中佔有空間。

l   呼叫父類別的constructor時,可採用super()的函式呼叫,它會一直往上到最頂層的Objectconstructor;若我們未加上super(),編譯器會主動幫我們加上去,但主動加的super()一定是呼叫沒參數的constructor()

l   除了super()之外,也可以用this來呼叫自己真正的constructor,例如建立一個class需要設定顏色,但建立時未給參數,可以用this將預設值丟給另一個constructor()

Public car(){
        this(Color.Red);
}
Public car(Color c){
    ….
}

2、             Static

l   Static的函式無法使用實體物件的非靜態變數。

l   設定static函式時,代表該函式動作都相同,不需要特別建立物件再進行呼叫(例如Math)

l   若設定了privateconstructor,代表的是不讓其它地方建立這個物件,意即該class可能有static的函式,且不希望人加先建立物件再使用(例如Math),但不代表有staticclass就一定不能建立物件。

 

 

arrow
arrow

    y23462001 發表在 痞客邦 留言(0) 人氣()