構造函數 example1: static void Main(string [] args) { SE engineer=new SE(); engineer.Age=25; enginner.Name="艾邊成"; //省略其他屬性賦值操作 Console.WriteLine(engineer....
構造函數
example1:
static void Main(string [] args) { SE engineer=new SE(); engineer.Age=25; enginner.Name="艾邊成"; //省略其他屬性賦值操作 Console.WriteLine(engineer.SayHi()); }
我們知道要使用類的屬性和方法,首先要對類進行實例化,在實例1中通過SE engineer=new SE();創建SE對象,這種創建類實例的方法稱為構造函數、
示例1中調用構造函數創建SE對象併為其屬性一一賦值如果不賦值系統將給類的各個欄位賦預設值。
從示例1中可以看出,類的構造函數是類中的一種特殊方法,它具有一下特征
- 方法名與類名相同
- 沒有返回值類型
- 主要完成對象的初始化工作。
here:
我們在做開發時,一般不再構造函數中作對類的實例初始化以外的事情,不要嘗試顯示的調用構造函數
無參構造函數
語法:
//訪問修飾符 類名() { //方法體 }
帶參構造函數
語法:
//訪問修飾符 類名(參數列表) { //方法體 }
隱式構造函數
當我們沒有在類中顯示的定義一個類的構造函數時,系統會自動給我們隱式的定義一個沒有方法體的無參構造,這就是隱式構造函數,值得註意的是當我們顯示的定義類的構造時系統就不會在為我們定義該類的隱式構造函數了
方法重載
構造函數的重載
example:
Public Class SE { string id; string name; //帶參構造 public SE(string id,string name) { this.id=id; this.name=name; } //無參構造 public SE() { } //省略SE類的其它代碼 }
從這段代碼程式可以明顯的看出,在SE類有兩個方法名相同但參數個數不同的構造函數,這種方式就是方法重載。
從以上示例我們可以總結出方法重載的特點
- 方法名相同
- 方法參數類型不同或參數個數不同
- 在同一個類中
需要註意的是方法名一參數類表相同的方法,近視返回值類型不同,不能稱為方法重載、
方法重載示例
example:
Public static void Main(string [] args) { Console.WriteLine(8); Console.WriteLine("Hello"); }
在example中我們可以看出第一個WriteLine方法接受一個int類型參數,第二個WriteLine方法接受一個string類型參數。WriteLine()提供了多種重載方法,滿足各種需求、