1.作用
構造方法是乙個方法,作用是對對像的屬性(就是成員變數)進行初始化.
2.寫法
a.構造方法的方法名和類名完全一樣(大小寫必須一樣);
b.沒有返回值(沒有return)和返回值型別(不寫void).
例如:
class car
}
上面就是乙個沒有引數型別的構造方法.既然有沒有引數的建構函式,那麼肯定也有有引數的建構函式.
3.無參構造方法和有參構造方法
舉例說明無參構造方法和有參構造方法有什麼不同:
public
class demo01
}//定義乙個類
class person
//定義乙個有引數的構造方法
public
person(string name,int age)
}
由此可以得出怎麼理解構造方法的有參和無參?
初始化後面的那對小括號 –>
有參就是在小括號裡填寫引數;
無參就是不在小括號裡面填寫引數.
由此可以聯想到函式的過載(引數的順序,個數,資料型別不同就是函式的過載.和函式名無關),構造方法同樣也符合函式的過載.
4.構造方法的注意事項
a.如果你沒寫任何構造方法,那麼系統會自動提供乙個無參的構造方法給你;
b.如果你寫了有引數的構造方法,那麼這時系統就不會提供無參的構造方法給你;
c.如果你寫了有引數的構造方法,那麼建議你把無參的構造方法也寫了.
舉例說明:
public
class demo02
}//定義乙個car類
class car
//寫乙個有引數的構造方法
public
car(string name,string color)
public
void
sayhi()
}
static表示「全域性」或者「靜態」的意思,用來修飾成員變數和成員方法.static關鍵字主要有兩種作用:
第一,為某特定資料型別或物件分配單一的儲存空間,而與建立物件的個數無關;
第二,實現某個方法或屬性與類而不是物件關聯在一起.
1.靜態變數 – 類變數
static修飾的成員變數習慣上稱為靜態變數.可以直接通過類名來呼叫.也可以用物件呼叫,但是不推薦,因為靜態變數被載入的時候,物件還沒有被建立,所以靜態變數不依賴物件,因此不推薦使用物件名呼叫.
2.靜態變數使用的一些問題
—靜態變數的特點:
a.隨著類的載入而載入;
b.建立順序優先於物件;
c.是類建立出來的物件,是可以共享的部分;
d.可以用類名去呼叫
—靜態變數的好處:
可以節省記憶體空間.建立一次,類中的物件都可以呼叫.
—靜態變數與成員變數的區別:
a.所屬不同
靜態變數:屬於類 所以又被稱為類變數
成員變數:屬於物件 所以又被稱為物件變數或者例項變數
b.在記憶體中的儲存位置不同
靜態變數:儲存在方法區的靜態區中
成員變數:儲存在堆記憶體中
c.載入到記憶體中的時間不同
靜態變數:隨著類的載入而存在
成員變數:隨著物件的建立而存在
d.呼叫方法不同
靜態變數:可以使用物件呼叫,也可以是有類呼叫.一般使用類呼叫
成員變數:只能使用物件去呼叫
下面舉例說明:
public
class demo03
}//定義乙個singer類
class singer
}
3.靜態方法 — 類方法
舉例說明靜態方法:
public
class demo05
//定義乙個man類
class man
// 宣告乙個靜態成員方法
// 靜態方法只能使用靜態的變數和靜態方法
public
static
void
sayhi2()
}
構造方法 物件的建立過程 this和static
一 構造方法 構造器的要點 1.通過new關鍵字呼叫 2.構造器雖然有返回值,但是不能定義返回值型別 返回值型別肯定是本類 不能再構造器裡使用return返回某個值 3.如果我們沒有定義構造器,則編譯器會自動定義乙個無參的構造方法。如果已定義則編譯器不會自動新增 4.構造方法的方法名必須與類名一致 ...
詳解建構函式模式
前言 雖然ecmascript從技術上講是一門物件導向的語言,但是它不具備傳統的物件導向語言所支援的類和介面等基本結構。但在es5中,有與類相似的引用型別。引用型別描述一類物件所具有的屬性和方法,引用型別的值 物件 是引用型別的乙個例項,所以也被稱為物件定義。新物件是使用new 操作符後跟乙個建構函...
java 構造方法
構造方法的特點 1 構造方法的方法名必須和當前的類名保持一致。2 構造方法是沒有返回值的,也就是在書寫構造方法的時候不能書寫返回值型別 注意這裡連void都不能寫 可以新增修飾符 構造方法中需要注意的問題 1 如果在乙個構造方法中呼叫其他的構造方法,那麼這個this 呼叫必須寫在該類這個構造方法中的...