構造函數、析構函數
構造函數:
語法:
//無參的構造函數
[訪問修飾符] 函數名() ;函數名必須與類名相同。
//有參的構造函數
[訪問修飾符] 函數名(參數列表);函數名必須與類名相同。
作用:幫助我們初始化對象(給對象的每個屬性依次的賦值)
構造函數是一個特殊的方法:
1)、構造函數沒有返回值,連void也不能寫。
2)、構造函數的名稱必須跟類名一樣。
3)、構造函數有無參和有參之分。
創建對象的時候會執行構造函數,構造函數是可以有重載的。
***
類當中會有一個默認的無參數的構造函數,當你寫一個新的構造函數之後,不管是有參數的還是無參數的,那個默認的無參數的構造函數都被干掉了。
代碼展示:
//定義一個類:
public class Student { private string _name; public string Name { get { return _name; } set { _name = value; } } private int _age; public int Age { get { return _age; } set { _age = value; } } }View Code
//定義無參的構造函數
public Student() { Console.WriteLine("我是構造函數!!!"); }View Code
//定義有參的構造函數
public Student(string name, int age ) { this.Name = name; this.Age = age; }View Code
析構函數:
語法:~(”~”)函數名; 函數名必須與類名相同。
規則:一個類只能有一個析構函數;
析構函數不能重載;
析構函數不能顯示或手動調動,只能由垃圾回收站(GC)自動調用。
注意:析構函數不接受任何參數,也不帶任何訪問修飾符。析構函數的主體包括了一些代碼,通常用於關閉由實例打開的數據庫,文件或網絡連接等。
代碼展示:
public class Student { private string _name; public string Name { get { return _name; } set { _name = value; } } private int _age; public int Age { get { return _age; } set { _age = value; } } }View Code
//析構函數
//當程序結束的時候 析構函數才執行 //幫助我們釋放資源 //GC Garbage Collection ~Student() { Console.WriteLine("我是析構函數"); }View Code
總結:
構造函數:用於初始化對象。
析構函數:釋放資源。