almost 3 years ago

類別與物件

物件導向基本概念為『類別』與『物件』
基本上保哥這篇文章已經寫的很清楚了保哥 (保哥),但知識的學習還是要經過自已的腦袋與手加眼睛
所以小弟我也用自已的意思來表達這兩個東西的概念。

類別:
小弟是把類別想成是『汽車藍圖』,它定義好了汽車的屬性與方法,
但它沒有實體(Instance),也就是說,你必須實作這張汽車藍圖它才能產生實體(可以開的車~)。

class Car
{
    //定義車子的速度欄位
    public int Speed;
    //車子的顏色欄位
    public string Color;

    //定義車子移動的方法
    public string DriveCar()
    {
        return "正在開『" + Color + "』的車" + "時速『" + Speed.ToString() + "』在移動";
    }
}

物件:
就是實際做出來的車。以程式術語來說,運用汽車藍圖做出車的過程就是所謂的
『實體化』系統會自動給予物件記憶體。以下為實體化的C#程式碼。

//實體化Car類別為MyCar物件,並設定欄位Speed為100、Color為Red
Car MyCar = new Car { Speed = 100, Color = "red" };
TextBox1.Text = MyCar.DriveCar();

執行結果
正在開『red』的車時速『100』在移動


建構子或建構函式(constructor)

其中Car MyCar = new Car,即為產生一個名叫MyCarCar實體。
new Car除了產生實體,它還會幫你呼叫一個名為Car()的方法。該方法就是所謂的建構子(constructor)。

但我並沒有定義Car()方法, C#預設會自動產生一個同名的方法,稱為建構子或建構函式(constructor)
而你自已也可以定義。建構子主要的目的為『幫助實體化時設定初始值』

    /// 
    /// 定義建構子,預設Speed為50,Color為Blue
    /// 
    public Car()
    {
        Speed = "50";
        Color = "Blue";


    Car MyCar = new Car();
    TextBox1.Text = MyCar.DriveCar();

    執行結果
    正在開『Blue』的車時速『50』在移動

參考資料:

物件導向系列菜單2-『物件導向特性-繼承(Inheritance)1』 →
 
comments powered by Disqus