《C#程式設計語言程式設計與開發》學習筆記四:C#物件導向的初級特性

來源:互聯網
上載者:User

第4章:C#物件導向的初級特性

1 物件導向基本概念
1) 對象與類:
2) 繼承
3) 封裝:使軟體的錯誤和修改可以局部化。
4) 多態性:動態綁定(晚綁定),編譯器在真正調用的地方插入一段特殊的二進位代
碼,通過使用存放在對象自身的資訊,這段代碼在運行時計算出實際應該被調用對象
方法的地址。

2 方法修飾符:virtual, static, new, abstract, override

3 類的存取修飾詞:public, internal(僅限於當前工程代碼訪問,  預設)

4 類成員存取修飾詞:public, protected internal, internal, protected, private(預設).

5 與C++不同, C#中對象必須通過new來建立。
  Object x;        //聲明一個引用,並未建立對象執行個體
  x = new object();
  而且參考型別的比較是其引用地址的比較而非資料內容的比較

6 C#中可以在聲明資料成員時初始化其值,其在建構函式執行前就初始化完畢

7 類體繫結構中,建構函式執行順序同C++, 基類->子類

8 this關鍵字
  1) 代表當前對象,可以引用非靜態方法及屬性或將當前對象作為參數傳給另一個方法。
  2) 建構函式相互調用。
  public class Car
  {
      Car(int i){}
      Car(string str, int i): this(i){}
  }
  3) 用在索引器中

9 解構函式
  在C#中大多數對象不需要定義顯式的解構函式, 這與C++有所不同, 原因如下
  1) C#中記憶體由GC管理,我們不需要自己做相關的清理工作,除非有不可控資源(檔案, 網路連接, 資料庫連接,控制代碼等)
  2) GC的工作機制中, 帶有解構函式的對象在第二遍回收時才釋放, 影響GC效率。
  另外,GC一般用Object.Finalize方法來清理非託管資源,在C#中的解構函式,實際會編譯為Finalize方法的重載。而且,因為GC的已耗用時間不可預知,解構函式調用時間無法確定,所以解構函式中不應有任何依賴與程式運行狀態的代碼。

10 強制對象回收(解構函式中的非託管資源)
調用Close或Dispose來命令“系統不要等待對象被判定為終結, 立即回收”
1) Close: 一個對象需要關閉, 然而這個對象關閉後還能再次將其開啟。檔案
2) Dispose: 當清楚對象後不打算繼續使用。 GDI或控制代碼
如何脫離GC的管理:1)GC.SuppressFinalize  2)不定義解構函式

11 using 語句
using(Font font = new Font("Arial", 10.0)){}
保證Dispose會在語句退出時被調用。

12 參數傳遞的方式
1) in: 傳值
2) ref:  傳引用
3) out: 返回參數(不需要初始化)
ref, out在聲明與調用時都要顯式寫出。

13 靜態成員與靜態建構函式
和C++不同, 靜態成員只能通過類名來訪問,而不能通過執行個體名訪問。 靜態建構函式會在類的任意一個執行個體建立之前運行,用來初始化靜態成員,或僅需一次初始化的情況。如匯入DLL函數, 資料庫連接等。。。。。。

14 性質(property)
將類的狀態與訪問狀態的方法分離,通過這個間接性使類的設計者按需改變對象的內部狀態。
public int Hour
{
  //we can add custom code to adjust the value.
  get{return hour;}
  set(hour = value;)
}

15 readonly關鍵字
   我們需要這樣的變數:在運行前未知, 但一旦賦值就不會被改變。 這就是readonly變數.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.