一、相關概念:
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; namespace ConsoleApplication2
|
三、實例化對象:關鍵字:new
語法:
類 對象名稱=new 類();
例: |
|
代碼如下 |
復制代碼 |
using System; |
四、屬性
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關鍵字時,就是帶數組型參數的方法(使用引用傳遞)