C#中的類02:構造對象

1:構造方法的可訪問性

構造方法可以是共有的或私有的。


2:默認構造方法

默認構造方法就是不帶參數的構造方法。

如果沒有爲類添加任何構造方法,系統會自動生成一個隱藏的默認構造方法;但如果用戶添加了任意一個構造方法,系統就不會自動生成默認的構造方法了。也就是說,如果用戶爲類添加了自己的定義的構造方法,那麼就只能使用用戶定義的這些構造方法來生成對象了。


3:構造方法調用構造方法

格式如下:

構造方法名(參數列表) : this(參數列表)

{

    方法體

}

舉例:

class DerivedClass
{
    public DerivedClass() : this(100)
    {
        Console.WriteLine("Derived Class's Default Constructor");
    }

    public DerivedClass(int i)
    {
        Console.WriteLine("Derived Class's Constructor with Param: {0}", i);
    }
}

和Java的區別

Java中,構造方法調用另一個構造方法也是使用this(參數)的方法,但Java是將其作爲一條語句放在方法體中的,而且這條this語句還必須是方法體的第一條語句。


4:在繼承結構中,父類對象的生成

和C++、Java一樣,如果有繼承結構,那麼在生成子類對象時會先生成父類對象。

默認情況下,在執行子類的構造方式(所有的構造方法)時會先自動調用父類的默認構造方法以生產父類對象,所以,如果在子類的構造方法中沒有特別說明,而父類又沒有默認的構造方法,系統會提示出錯。

一般情況下,我們會在子類的構造方法中明確的告訴系統,子類的構造方法要調用父類的哪個構造方法。

格式如下:

子類的構造方法名 : base(參數列表)

{

方法體

}

這樣,在執行這個構造方法之前,系統會先調用父類的相應的構造方法。

與Java的區別:Java中使用的關鍵字是super,而且也是作爲語句放置於方法體的開頭。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章