1、 constructor
Instance Variable(實體變數)
l Heap:代表物件的生存空間
l Stack:method的呼叫與變數的生存空間
l 非primitive的變數只是存物件的參考,物件本身仍儲存在heap
l 若物件中含有參考變數時,當該變數指派一個物件時,才會在heap中佔有空間。
l 呼叫父類別的constructor時,可採用super()的函式呼叫,它會一直往上到最頂層的Object的constructor;若我們未加上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 若設定了private的constructor,代表的是不讓其它地方建立這個物件,意即該class可能有static的函式,且不希望人加先建立物件再使用(例如Math),但不代表有static的class就一定不能建立物件。
留言列表