前言:
首先我們要知道為什麼要使用建構函式,或者說我們要知道使用建構函式能夠為我們解決什麼問題:
1、在賦初值的時候,我們可能需要重複書寫對象名,但是如果使用了建構函式就不用那麼繁瑣。畢竟代碼像那個什麼一樣,越短越好嘛(大家都知道,我就不說出來了)。
2、假如有這樣一個屬性,不允許使用者隨意改動,我們一般把這個屬性定義為唯讀類型的屬性。那麼這個唯讀類型的屬性就不能再執行個體化之後對它賦值了,那麼我們如何對它初始化呢?聰明如你,建構函式可以幫到我們。
那麼這麼好用的東西,編譯器有沒有為我們做出來呢?當然有了,我們定義好一個類,如果沒有寫構造方法,那麼編譯器就會自動在這個類中給我們添加一個沒有參數的構造方法。而一旦我們寫了一個構造方法,那麼編譯器就不會再給我們添加這個沒有參數的構造方法了。
說了這麼多,建構函式到底是個什麼東西呢?建構函式是用來建立對象的特殊方法,方法名和類名一樣,沒有傳回值,連void都不用。文法格式是什麼呢?
[存取修飾詞] <類名>(參數)
{
//建構函式的主體
}
下面說一說建構函式的幾個特點吧:
1、 其名字必須和類名相同
舉個栗子:
public class Person { public Person(string name,char gender,int age) { this._name = name;//this指示代詞 this._gender = gender; this._age = age; }
2、 不能被直接調用,必須使用new運算子來調用。
在上面的栗子中,我們調用Person類的時候,應該這樣寫:
Person zsPerson = new Person(“張三”,’男’,18);
3、 它可以重載(一個類中可以定義不同參數個數或不同類型的建構函式)。剛才有一點沒有說,那就是如果我們寫了一個建構函式之後,原來的無參數的建構函式不就沒了嘛,這個時候我們又需要的時候該怎麼辦呢?那就是自己再寫一遍。
總結:
建構函式可以用來建立對象,並且可以在建構函式中對對象進行初始化。小編出道時間還短,希望大家可以多多指出不足之處。
前言:
在看C#視頻的時候,學到了建構函式,覺得很有意思,因為瞭解還不夠深入,這裡先做個簡單的小總結。
首先我們要知道為什麼要使用建構函式,或者說我們要知道使用建構函式能夠為我們解決什麼問題:
1、在賦初值的時候,我們可能需要重複書寫對象名,但是如果使用了建構函式就不用那麼繁瑣。畢竟代碼像那個什麼一樣,越短越好嘛(大家都知道,我就不說出來了)。
2、假如有這樣一個屬性,不允許使用者隨意改動,我們一般把這個屬性定義為唯讀類型的屬性。那麼這個唯讀類型的屬性就不能再執行個體化之後對它賦值了,那麼我們如何對它初始化呢?聰明如你,建構函式可以幫到我們。
那麼這麼好用的東西,編譯器有沒有為我們做出來呢?當然有了,我們定義好一個類,如果沒有寫構造方法,那麼編譯器就會自動在這個類中給我們添加一個沒有參數的構造方法。而一旦我們寫了一個構造方法,那麼編譯器就不會再給我們添加這個沒有參數的構造方法了。
說了這麼多,建構函式到底是個什麼東西呢?建構函式是用來建立對象的特殊方法,方法名和類名一樣,沒有傳回值,連void都不用。文法格式是什麼呢?
[存取修飾詞] <類名>(參數)
{
//建構函式的主體
}
下面說一說建構函式的幾個特點吧:
1、 其名字必須和類名相同
舉個栗子:
public class Person { public Person(string name,char gender,int age) { this._name = name;//this指示代詞 this._gender = gender; this._age = age; }
2、 不能被直接調用,必須使用new運算子來調用。
在上面的栗子中,我們調用Person類的時候,應該這樣寫:
Person zsPerson = new Person(“張三”,’男’,18);
3、 它可以重載(一個類中可以定義不同參數個數或不同類型的建構函式)。剛才有一點沒有說,那就是如果我們寫了一個建構函式之後,原來的無參數的建構函式不就沒了嘛,這個時候我們又需要的時候該怎麼辦呢?那就是自己再寫一遍。