首頁  >  文章  >  後端開發  >  C#拾遺之小知識(三):類

C#拾遺之小知識(三):類

黄舟
黄舟原創
2017-02-07 15:15:091052瀏覽

是抽象的概念。

  例如Dog類描述了狗有的一些特性,體重、身高、年齡、以及吼叫等等。

public class Dog
  {
  string dogBreed;//犬种
  int weight; //体重
  int height; //升高
  int age; //年龄
  public void bellow()
  {
  Console.WriteLine("旺旺");
  }
  }

這Dog類是抽象的,描述了一些特性,不是具體的一條狗。

  讓後下面定義一個鄰居的狗"大哈",它屬於Dog類。

  Dog 大哈 = new Dog();

  實例化創建"大哈"的對象,現在"大哈"是具體的存在。讓後可以對"大哈"物件進行具體的描述。如"大哈"的犬種是哈士奇,體重35公斤等等。

  大哈.dogBreed = "哈士奇";

  大哈.weight = 35;

  ……

  讓後"大哈"吼叫

  大哈.bellow(); 這是一個狗的吼叫方法

  注意:對Dog類別不能直接賦值特性。就例如int = 8; 一樣,沒有意義。沒指特定的狗的情況下,你不能說狗體重、身高、犬種多少一樣。

  類別的最大的好處在於它能將一個實體的屬性和行為封裝在一個獨立的代碼單位中。按上面的範例Dog類中封裝了犬種、身高、體重、年齡屬性,以及吼叫方法。

  存取類型有Public公用、Private私有、Protected受保護(繼承可存取)、internal內部、Protected internal內部受保護(繼承可存取)。對類別、欄位、方法、屬性、建構子都可用。

  類別可包含:欄位、屬性、建構子、方法。

  類別成員方法:

  語法:

  存取類型傳回型別方法名稱(接受參數,)

  {方法體}.

  多重方法:方法名稱一樣,參數不一樣

  

  Public void Method(int i , string s,…….)
  {方法体}

  類別建構子:

  new建立物件時初始化成員變數。建構函數的函數名和類別名相同。可以有多重構造函數,如同多重方法。

  例:

  

public string d(int i , int j)
  { }
  public void d(string i)
  { }
  public void d(int i)
  { }
  public int d(char d)
  {
  return 0;
  }

  }

  上例子中含有兩個接受參數不同的多重構造函數。

  this代表當前實例(引用當前物件),Dog實例的dogBreed欄位。

  類成員變數(字段):

  上範例中的dogBreed、weight是該類別成員變數。可以在定義的時候初始化,而不用將每個變數都在建構函式中執行初始化。

  類別成員屬性:

  C#提供了get;set;存取器。用屬性封裝類別的資料。

  例:

  

class Dog
  {
  Public Dog(string dogBreed,int Weight)
  {
  weight = Weight;
  this.dogBreed = dogBreed;
  }
  Public Dog(string dogBreed)
  {
  this.dogBreed = dogBreed;
  }
  string dogBreed;//犬种
  int weight; //体重

  上例子中其他類別無法直接讀取height,只能透過訪問器進行存取操作。

  get set前可以設定存取類型。

  物件銷毀:

  析構函數,C#中的析構函數聲明:

  

private int height;
  public int Height
  {
  get { return weight; } 读取
  set { weight = value; } 赋给
  }

 〜還可以寫成:

〜㟎相關內容請關注PHP中文網(www.php.cn)!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn