iT邦幫忙

2024 iThome 鐵人賽

DAY 5
0
自我挑戰組

初學C#之路:30天基礎學習與實作紀錄系列 第 7

Day7-C#物件導向基礎學習Part1

  • 分享至 

  • xImage
  •  

定義類別

每個定義的類別會由不同類別成員組成,它包含欄位、屬性、方法和事件。
欄位和屬性表達物件的資訊,方法則是負責資料的傳遞和運算。
欄位(Field):可視為任意型別的變數,可直接存取,通常會在類別或建構函式中宣告
屬性:用來描述物件特徵
方法:定義物件行為
事件:提供不同類別與物件之間的溝通
使用類別之前,必須以關鍵字class為開頭做宣告,它的語法如下:

class 類別名稱 
{
	[存取修飾詞]資料型別 資料成員;
	[存取修飾詞]資料型別 方法
	{
		...
	}
}

//類別名稱:建立類別使用名稱,須遵守識別項的規範。類別名稱之後有一對大括號來產生區段
//存取修飾詞:有五個private、public、protected、internal、protected、internal
//資料成員包含欄位和屬性:可將欄位視為類別內所定義的變數,一般會以英文小寫作為識別名稱的開頭
namespace Ex0601 //名稱空間
{
	class student  //宣告類別
	{
		public string name; // 宣告類別欄位
	}
	
	class Program ...
}

實體化物件

由於類別屬於參考型別,要實體化物件使用new運算子,語法如下:

類別名稱 物件名稱;
物件名稱 = new 類別名稱();
類別名稱 物件名稱 = new 類別名稱(); // 合併前述兩行
student brett; //建立student 類別的物件brett
brett = new student(); //以new運算子將brett實體化
//合併
student brett = new student(); // 將前述兩行合併成一行
class student 
{
	public string name ;
}

static void Man(string[] args)
{
	//第一個物件-tomas
	Student tomas = new Student();
	tomas.name = "Tomas";
	Student emily = new Student();
	emily.name = "Emaily VanCamp";
	Console.WriteLine($"第一個學生:{tomas.name}");
	Console.WriteLine($"第二個學生:{emily.name}");
}

存取權限
https://ithelp.ithome.com.tw/upload/images/20240924/20121669zIfsSDCm6f.png

在物件導向技術世界哩,為了達到資訊隱藏目的,可以透過方法來封裝物件的成員。

存取權限的作用能讓物件掌握成員,控制物件在被允許的情況下才能讓外界使用。

為了保護物件的欄位不被外界其他類別所存取,通常會將資料成員宣告為private。

定義方法成員

確保資料成員的安全,透過方法是比較好的方法,這才能達到前文所提到”由於外部無法存取私有範圍的變數,就是資訊隱藏的一種表現方式”。將欄位name存取變更為private,再以兩個方法來設定和取得欄位直,方法成員的語法如下:

[存取修飾詞] 回傳值型別 methodName(資料型別 參數串列){
	程式敘述;
	[return 運算式;]
}

回傳值型別:它必須與return敘述回傳值的型別相同。若方法沒有回傳任何資料,以void取代。
methodName:方法名稱;同樣遵守識別項規範。
資料型別:定義方法時,接收資料的參數也要有型別。
參數串列:依據需求設定多個參數來接收資料,每個參數都必須清楚地宣告其資料型別。無任何傳入值,保留括號即可。
return敘述:回傳運算結果。

https://ithelp.ithome.com.tw/upload/images/20240924/20121669fdoa6FuZ1M.png

以上來源:從零開始學visual C# 2017程式設計、W3Schools、詢問chatGPT
內容有誤的話,請留言或發訊息給我


上一篇
Day6-C#陣列寫法學習Part4
下一篇
Day8-C#物件導向基礎學習Part2
系列文
初學C#之路:30天基礎學習與實作紀錄10
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言