您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關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、 它可以重載(一個類中可以定義不同參數個數或不同類型的構造函數)。剛才有一點沒有說,那就是如果我們寫了一個構造函數之后,原來的無參數的構造函數不就沒了嘛,這個時候我們又需要的時候該怎么辦呢?那就是自己再寫一遍。
構造函數可以用來創建對象,并且可以在構造函數中對對象進行初始化。小編出道時間還短,希望大家可以多多指出不足之處。
在看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、 它可以重載(一個類中可以定義不同參數個數或不同類型的構造函數)。剛才有一點沒有說,那就是如果我們寫了一個構造函數之后,原來的無參數的構造函數不就沒了嘛,這個時候我們又需要的時候該怎么辦呢?那就是自己再寫一遍。
感謝各位的閱讀!關于C#中的構造函數是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。