在這裡,會介紹C#的Class 及 Object基本用法
Class基本架構
物件導向開發時,會運用class來作為資料型別
這時,class就好像一個大類別,在這裡面,開發者通常會將具有關聯性的成員(Object、Methods、variable..)統合起來
例如,當我們建立一個管理使用者class,裡面可能就會包含使用者相關的 Methods,如: 檢視、新增、刪除、編輯 …等
並且,在class中設定成員的權限:
權限 | 說明 |
---|---|
public | 可以任意引用 |
protected | 只能在class內引用,且可被繼承 |
private | 只能在class內引用,但不能被繼承 |
建立class的方式:
/*
class Class名稱{
//變數、物件、方法...
權限 void Method名稱(){
}
}
*/
class User
{
protected int phone;
public string name;
public void View()
{
Console.WriteLine("Show users list");
}
}
呼叫Class及使用內部方法(methods)
建立好 Class 後,透過new運算符來實例化(Instantiate) Class,再透過句點(.)運算符來呼叫成員:
Class名稱 變數 = new Class名稱();
變數.Method名稱();
例如:
//建立 User 類別
class User
{
int phone;
public string name;
//建立方法 View()
public void View()
{
Console.WriteLine("Your name is :"+ name);
Console.WriteLine("Show users list");
}
}
static void Main(string[] args)
{
//實例化User類別
User x = new User();
//呼叫User內的變數,並儲存值
x.name = "Hi";
//呼叫User內的方法
x.View();
}
C# 靜態類別 - Static
在這裡,特別說明 C# 的靜態類別(static) 一開始,介紹C# 都會提到必須包含一個Main Methods 不知道你有沒有留意到 Main 就有宣告 static
static void Main(string[] args)
static 可以宣告的成員包含 變數(Variables)、屬性(Properities)、方法(Methods) 他的特性是: 一旦宣告之後,不管物件被實體化幾次、或者方法被呼叫幾次,使用的都會是同一個static成員
例如:
static void Main(string[] args)
{
//這裡會做三次實體化
Member x = new Member();
x.Add();// 結果 1
Member y = new Member();
y.Add();// 結果 2
Member z = new Member();
z.Add();// 結果 3
x.Add();// 結果 4
y.Add();// 結果 5
z.Add();// 結果 6
}
class Member
{
//將 count 設定為靜態類別
public static int count = 0;
public void Add()
{
count++;
Console.WriteLine("不管你怎麼new,呼叫的都是同一個count: "+count);
}
}