6.類(1)--類的定義

.C#中類的定義

   1.類的定義方法:

      <accessType> class<className>:<baseClass>,<interface>

     {

       //class member;

     }

  注:

      1).默認情況下類的訪問權限是內部的(internal),只有當前項目中才能訪問它

      2).類還還有抽象類(abstract修飾,不能實例化、只能繼承、可以有抽象成員)和與之對立的密封類(sealed修飾,不能繼承),這兩種類都有publicinternal類型的

      3).一個類只能有一個基類

      4).如果繼承了一個抽象類,必須實現所繼承的所有抽象成員(除非其基類也是抽象類)

      5).子類的可訪問性不能高於基類,如子類是public,基類不能是internal

      6).支持接口的類必須實現所有的接口成員,但如果不想使用給定的接口,則可以提供一個“空”的實現方式(沒有函數代碼)

      7).定義接口方式與定義類類似,用關鍵字interface

      8).定義接口不能用abstractsealed修飾

 2.System.Object

    因爲所有的類都繼承了System.Object,所有所有的類都能夠訪問Sytem.ObjectProtectPublic成員。也可以重寫其方法

3.構造函數和析構函數

    C#定義類時,常常不需要定義構造函數和析構函數,編譯器會自動添加,但有可在必要的時候添加。

    1).構造函數定義方法:

         <accessType> <className>(paramater1,…)

          {

                //Constructor code;

          }

         1>.構造函數與類同名

         2>.默認構造函數沒有參數,且訪問控制權限爲public

         3>.構造函數是用來創建類的實例的,但也可以有Internal的構造函數,這個構造函數不能創造類的實例

         4>.構造函數可以有多個,參數集不能重複

  2)繼承關係中構造函數的調用

   1>.子類實例化時先調用的是父類的默認構造函數,再調用自己的默認構造函數和有參構造函數。

   2>.父類的有參構造函數用base關鍵字調用

  3).靜態構造函數

   1>.靜態構造函數一般用於類的靜態成員的初始化

   2>.靜態構造函數不能有參數,不能有修飾符

   3>.靜態構造函數在類被加載時自動被調用,不能單獨調用

   4>.靜態構造函數最多隻能被調用一次,即一個類被實例化多次也只執行一次靜態構造函數

   5>.靜態構造函數在類的任何靜態變量初始化之前和被使用前執行;在任何實例變量被分配之前執行

     2).析構函數的定義

           ~ <className>()

           {

               //Destructor body;

           }

      3).構造函數的執行序列

         1>.實例化繼承子類,必須先實例化其基類,要實例化其基類就得先實例化其基類的基類,直到實例化Sytem.Object爲止

         2>.除非明確指示,否則使用期默認構造函數。上述一連串不論子類用的是否默認構造函數,基類一定用其默認構造函數

         3>.實例化子類時如果要使用基類的非默認構造函數,可用base(<paramater>)關鍵字指定使用固定參數的構造函數

 5.類庫項目

    如果一個項目只包含類(以及其他相關類的定義,但沒有入口點),該項目就稱爲類庫。類庫項目被編譯爲.dll文件

    將類庫項目加入參考,並用using語句寫入主程序即可被引用。..

6.接口和抽象類

   1).二者的相同之處

      1>.都包含可以由派生類繼承的成員

      2>.都不能直接實例化,但可以聲明這些類型的變量。然後把繼承這兩種類型的對象指定給他們的變量,同過變量來使用其成員

  2).二者的不同之處

      1>.類只能直接繼承於一個抽象類(可用繼承鏈繼承多個類),但類可以有多個接口

      2>.抽象類可以擁有抽象成員(沒有代碼體,且必須在派生類中實現,除非派生類本省也是抽象的)和非抽象成員;接口成員必須被使用它的類實現

      3>.接口成員的定義傾向於公共的,但抽象類的成員可以是私有的、受保護的、內部的

      4>.接口不能包含字段、構造函數、析構函數、靜態成員或常量

7.結構和類

   結構:值類型,把結構A賦值給結構B,是指把結構A中的內容全部複製到結構B

   類:引用類型,把類A的對象賦值給類B的對象,是指把類A的對象在內存中的地址複製給類B的對象

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章