物件導向基本概念為『類別』與『物件』 基本上保哥這篇文章已經寫的很清楚了保哥 (保哥),但知識的學習還是要經過自已的腦袋與手加眼睛,所以小弟我也用自已的意思來表達這兩個東西的概念。
類別
小弟是把類別想成是『汽車藍圖』,它定義好了汽車的屬性與方法, 但它沒有實體(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
,即為產生一個名叫MyCar
的Car
實體。
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』在移動