目錄
對象是面嚮對象語言的核心,數據抽象和對象封裝是面向對象技術的基本要求,而實現這一切的主要手段和工具就是類。
類的聲明
[訪問修飾符] class 類名 [:基類]
{
...... //成員,類主體
}
訪問修飾符
修飾符 | 作用說明 |
---|---|
public | 表示不限制對類的訪問。創建類使默認爲public |
private | 表示該類只能被這個類的成員訪問 |
protected | 表示該類只能被這個類的成員訪問或派生類成員訪問 |
internal | 表示該類能夠由程序集中的所有文件使用,而不能由程序集之外的對象使用 |
abstract | 表示這是一個抽象類,該類含有抽象成員,因此不能被實例化,只能用作基類 |
sealed | 表示這是一個密封類,不能從這個類在派生出其他類。 |
基類
繼承產生的類稱爲派生類或子類,而被繼承的類則稱爲基類、超類或父類。
當多於一項是,用英文逗號分隔。如果沒有顯示的指定直接基類(可省略),那麼它的基類隱含爲object。
類的成員
類成員由兩部分組成,一個是類體中以類成員形式引入的類成員,另一個則是直接從它的基類繼承而來的成員。
類成員包括:常數、字段、方法、屬性、事件、索引器,構造函數,析構函數等(接下來會展開去講)
類的實例化
類的實例化,用關鍵字new
類 實例名 = new 類();
類的成員的訪問:
實例名.屬性;
實例名.方法名();
構造函數
當定義了一個類之後,就可以通過new運算符將其實例化,產生一個對象。爲了能規範、安全的使用這個對象,C#提供了實現對象的初始化方法,這就是構造函數。
構造方法用來創建對象,並且可以在構造函數中對對象進行初始化。
只有創建類的實例或者引用類的任何靜態成員時,才能激活靜態構造函數。
如果一個類沒有聲明構造函數,則系統會自動提供一個默認的無參的構造參數
例如:
public class Person
{
// 需要六個參數的構造函數
public Person(string name,char gender,int age,int chinese,int math,int english)
{
this._name = name;
this._age = age;
this._gender = gender;
this._chinese = chinese;
this._math = math;
this._english = english;
}
// 需要兩個參數的構造函數
public Person(string name,char gender)
{
this._name = name;
this._gender = gender;
}
}
static void Main(string[] args)
{
//調用構造函數 構造函數的重載
Person per = new Person("張三", '男',25,90,90,90);
Console.WriteLine("==================================");
Person xiaolan = new Person("小蘭",'女');
Console.ReadKey();
}