標籤:按值傳遞 依賴 列表 namespace 多態 防止 類型 day employee
C#類、對象、方法和屬性詳解
一、相關概念:
1、對象:現實世界中的實體(世間萬物皆對象)
2、類:具有相似屬性和方法的對象的集合
3、物件導向程式設計的特點:封裝 繼承 多態
4、對象的三要素:屬性(對象是什麼)、方法(對象能做什麼)、事件(對象如何響應)
☆相互關係:類是對象的抽象,對象是類的執行個體,類是一種抽象的分類,對象則是具體事物。
比如如果車是一個類,某個人的一輛平治車就是一個對象,車的顏色品質就是它的屬性,啟動、停止這些動作則可以定義為車的方法。
二、類的定義與文法
1、定義類:
[修飾符] class 類名
{
類成員
}
2、類的存取修飾詞:public internal
a) public:可訪問域是所在的程式和任何引用的程式 訪問不受限制
文法:
public class 類名
{
類成員
}
b) internal:可訪問域定義範圍內 (預設存取修飾詞)
文法:
(internal) class 類名
{
類成員
}
3、類成員:資料成員和欄位
a) 資料成員:欄位和常量
欄位:變數
聲明:類型 欄位名
例:
public class Persion
{
public string name;
}
b) 方法成員 (方法是類的行為,告訴我們類能夠做什麼,)
執行個體方法:
修飾符 傳回值類型 方法名(參數列表)
{
方法體
}
修飾符:如:public、private、protected、internal
傳回值類型:若方法無傳回值,則使用 void
例:
public class Example01 //執行個體方法
{
public void SayHello() //定義一個無參無返回的方法
{
Console.WriteLine("Hello There")
}
static void Main()
{
Example01 objA=new Example01()
objA.SayHello() //建立對象並調用方法
}
}
靜態方法:
修飾符 static傳回值類型 方法名(參數列表) //增加了static關鍵字
{
方法體
}
例:
public class Example01 //執行個體方法
{
public static void SayHello() //定義一個靜態方法
{
Console.WriteLine("Hello There")
}
static void Main()
{
Example01.SayHello() //不需要建立對象
}
}
☆靜態方法與執行個體方法的區別:靜態方法只與類有關,它不依賴於對象的存在而存在;執行個體方法則在對象存在後才能使用。
4、成員的存取修飾詞:public、private、protected、internal
a) public:公有成員
b) private:私人成員
c) protected:保護成員
d) internal:內部成員
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication2{ public class Employee { private float sum; public int day; public float wage; //定義方法輸出工資資訊 public void Show() { sum = day * wage; Console.WriteLine("工作時間:{0},每天工資:{1},總工資:{2}",day,wage,sum); } } class Program { static void Main(string[] args) { Employee employee = new Employee(); employee.day = 20; employee.wage = 50; //employee.sum:無法訪問 因為它為私人成員 //調用方法現實工資 employee.Show(); } }}
三、執行個體化對象:關鍵字:new
文法:
類 對象名稱=new 類();
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { public class car { private string carName; private string carType; private int price; public string CarName { get { return carName; } set { carName = value; } } public string CarType { get { return carType; } set { carType = value; } } public int Price { get { return price; } set { price = value; } } public void action() { Console.WriteLine("一輛名叫{0}車,型號是{1},價錢是:{2}",carName,carType,price); } } //建立執行個體並訪問欄位和方法 class Program { static void Main(string[] args) { //建立car類的執行個體 car vehicle = new car(); //給執行個體賦值 vehicle.CarName = "平治"; vehicle.CarType = "XZ001"; vehicle.Price = 1000000; //調用方法 vehicle.action(); } } }
四、屬性
1、
a) 概念:用於訪問類的欄位的成員
b) 屬性用途:保證資料安全,作資料的驗證
2、聲明:
存取修飾詞 資料類型 屬性名稱
{
get{return 欄位;} //讀訪問器,通過它外部使用者可以讀取屬性的值
set{欄位=value;} //寫訪問器,通過它外部使用者可以為屬性賦值,使用者輸入的值就存放在value關鍵字中,並可以進行輸入值驗證
}
例:
public class Student
{
private int age; //私人欄位,防止使用者直接存取
public int Age
{
get{return age;} //用於讀取age的值
set
{
if((value>=18)&&(value<=45))
age=value; //為age賦值並驗證
else
age=18;
}
}
}
3、特殊屬性:
a) 唯讀屬性:
public 資料類型 屬性名稱
{
get{return 欄位;}
}
b) 自動屬性:
public 資料類型 屬性名稱{get;set;}
五、方法的參數
1、值參數:按值傳遞
2、引用參數:向方法傳遞實參在記憶體中的地址,按地址傳遞
3、輸出參數:從方法傳遞迴一個結果
關鍵字:out
4、數組型參數:參數只允許是一組數組,當方法的參數前帶有params關鍵字時,就是帶數組型參數的方法(使用引用傳遞)
C#類、對象、方法、屬性詳解(摘)感謝部落格園,感謝提供者。感謝我張帥哥。