1.C#中的對象和類
類是對一組具有相同屬性和行為的對象的描述
編碼慣例:
給公共成員變量、受保護的成員變量或內部成員變量命名應使用帕斯卡命名法,如Score、Name和Staus
給私有成員變量命名應使用駱駝命名法,並以下划線開頭,如_age、_length 和_radius
class Employee { private string _name; private char _gender; private string _qualification; private uint _salary; }
2.訪問修飾符
public 可被所屬類的成員以及不屬於類的成員訪問
internal 可被當前程序集訪問
protected 可被所屬類或派生自所屬類的類型訪問
private 僅所屬類的成員才可以訪問
如果對類不指定訪問修飾符,則類的默認訪問修飾符為internal ,但類成員的默認訪問修飾符為private
3.構造函數和析構函數
C#提供了一個名為構造函數的結構來自動初始化成員變量,但構造函數是類中的一種特殊方法,每次創建類的實例都會調用此方法。構造函數與類同名,它不返回任何值。
using System; namespace BaseConsole { class Employee { private string _name; private char _gender; private string _qualification; private uint _salary=0; //默認構造函數 private Employee() { _qualification = "大學畢業生"; } //參數化構造函數 private Employee(string strQualification,string strName,char gender,uint empSalary) { _qualification = strQualification; _name = strName; _gender = gender; _salary = empSalary; } [STAThread] static void Main(string[] args) { Employee objEmployee = new Employee(); //調用參數化構造函數 Employee objMBA = new Employee("工商管理學碩士","tom",'M',4000); Console.WriteLine("資格="+objEmployee._qualification); Console.WriteLine("薪水="+objEmployee._salary); Console.WriteLine("資格="+objMBA._qualification); Console.ReadKey(); } } }
析構函數
~ Employee() { //實現析構函數 }
析構函數不接受任何參數,也不帶任何訪問修飾符。析構函數的主體包括了一些代碼,通常用於關閉由實例打開的數據庫、文件或網絡連接等
一個類只能有一個析構函數
析構函數不能重載
析構函數不能顯式或手動調用,只能由垃圾回收器自動調用
4.方法重載
多個方法共用一個名稱但對不同數據執行相似的功能,這種概念稱為方法重載
using System; namespace BaseConsole { class OverloadParameters { int greatest(int num1,int num2) { Console.WriteLine("{0}和{1}中較大的數字是:",num1,num2); if(num1>num2) { return num1; }else { return num2; } } int greatest(int num1,int num2,int num3) { Console.WriteLine("{0}、{1}和{2}中最大的數字是:",num1,num2,num3); if (num1 > num2 && num1 > num3) { return num1; } else if (num2 > num1 && num2 > num3) { return num2; } else { return num3; } } [STAThread] static void Main(string[] args) { OverloadParameters obj = new OverloadParameters(); Console.WriteLine(obj.greatest(22,88)); Console.WriteLine(obj.greatest(300,200,100)); Console.ReadKey(); } } }