1. 程式人生 > >9. 構造函數和析構函數

9. 構造函數和析構函數

析構 log 默認 聲明 構造 col void strong 有一個

構造函數和析構函數:

  編寫代碼時,如果沒有編寫他們則編譯器會自動添加。

1、構造函數(特殊的方法)

  (1作用:幫助我們初始化對象,給對象的每個字段依次賦值;
  (2)構造函數沒有返回值,連void也不能寫必須public;
  (3)構造函數的名稱必須跟類名一樣;
  (4)方法自動運行,無需顯示調用;
  (5)類中會有一個默認的無參數的構造函數,當你寫一個新的構造函數時,那個默認的無參數構造函數就會被覆蓋掉。

2、析構函數

  (1)是實現銷毀一個類的實例方法成員;
  (2)他不能有參數,也不能有任何修飾符而且不能被調用 ;
  (3)析構函數前加綴“~” ;
  (4)編寫一些關於本類對象消失(清除)前的一些必要處理工作;
  (5

)常用於數據庫,數據連接的關閉,或者 Socket 數據連接的關閉 。

例:

 1 namespace ProgramTest
 2 {
 3     //主類
 4     class Program
 5     {
 6         static void Main(string[] args)
 7         {
 8             //利用構造函數及調用方法輸出
 9             Clerk zsClerk = new Clerk("張三", Gender.女, 100);
10             zsClerk.Wrte();
11             Console.ReadKey();
12 } 13 } 14 15 /// <summary> 16 /// 新建類Clerk,聲明變量(字段)、生成屬性及利用構造函數初始化字段 17 /// </summary> 18 /// 枚舉 19 public enum Gender 20 { 21 男, 22 23 } 24 class Clerk 25 { 26 //聲明變量及添加屬性 27 private string _name; //
聲明變量 28 public string Name //添加屬性。生成屬性快捷鍵:Ctrl + r +e 29 { 30 get 31 { 32 return _name; 33 } 34 35 set 36 { 37 _name = value; 38 } 39 } 40 private Gender _gender; //聲明變量 41 public Gender Gender //添加屬性 42 { 43 get 44 { 45 return _gender; 46 } 47 48 set 49 { 50 _gender = value; 51 } 52 } 53 private int _age; //聲明變量 54 public int Age //添加屬性 55 { 56 get 57 { 58 return _age; 59 } 60 61 set 62 { 63 _age = value; 64 } 65 } 66 67 //創建一個方法 68 public void Wrte() 69 { 70 Console.WriteLine("我叫{0},我是{1}生,我{2}歲了!", this.Name, this.Gender, this.Age); 71 } 72 73 //帶參構造函數,對字段進行賦值 74 public Clerk(string name, Gender gender, int age) 75 { 76 this.Name = name; 77 this.Gender = gender; 78 this.Age = age; 79 } 80 81 //創建析構函數 82 ~Clerk() 83 { 84 Console.WriteLine("這是一個析構函數"); 85 } 86 } 87 }

9. 構造函數和析構函數