日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
淺談面向?qū)ο蟪绦蛟O(shè)計(jì)C#中的類

類是面向?qū)ο蟪绦蛟O(shè)計(jì)的核心概念之一。

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),江西企業(yè)網(wǎng)站建設(shè),江西品牌網(wǎng)站建設(shè),網(wǎng)站定制,江西網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,江西網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

  1、類的定義

  簡(jiǎn)單的定義就不多說(shuō)了,之間看下表,修飾符的含義(使用abstract關(guān)鍵字的類是抽象類,這種類不能被實(shí)例化,只能被繼承;而使用sealed關(guān)鍵字的類是封裝類,這種類只能實(shí)例化,不能繼承):

  需要使用“:”來(lái)繼承基類和接口,最多可同時(shí)繼承一個(gè)基類以及很多接口,它們之間需要用“,”隔開(kāi)。如:

  publicclassMyClass : Mybase, IMyInterface, IMySecondInterface{}

  2、接口的定義

  接口的定義方式與類相差不大,不活使用的是interface關(guān)鍵字,而不是class。例如:

 
 
 
 
  1.   interfaceIMyinterface
  2.   {
  3.   //Interface members
  4.   }

  由于接口不包含執(zhí)行代碼,所以也就沒(méi)有抽象接口的概念,所以在聲明接口是一般使用public 和internal,不能使用abstract和sealed。

  3、構(gòu)造函數(shù)和析構(gòu)函數(shù)

  所有的類都有個(gè)默認(rèn)的構(gòu)造函數(shù),該函數(shù)沒(méi)有參數(shù),與類同名。我們?cè)陬惖亩x中可以包含幾個(gè)帶參數(shù)的構(gòu)造函數(shù),成為非默認(rèn)的構(gòu)造函數(shù)。在實(shí)例化對(duì)象時(shí)用new來(lái)選擇使用哪個(gè)構(gòu)造函數(shù)。

 
 
 
 
  1.   classMyClass
  2.   {
  3.   publicMyClass()
  4.   {
  5.   //Default constructor code
  6.   }
  7.   publicMyClass(intmyInt)
  8.   {
  9.   //Nondefault constructor code(use myInt)
  10.   }
  11.   }
  12.   MyClass myClass = newMyClass(3);

  析構(gòu)函數(shù)主要用于清理對(duì)象,聲明格式如下:

 
 
 
 
  1.   classMyClass
  2.   {
  3.   ~MyClass()
  4.   {
  5.   //Destructor body
  6.   }
  7.   }

  構(gòu)造函數(shù)的執(zhí)行序列

  在實(shí)例化一個(gè)派生類時(shí),必須先實(shí)例化這個(gè)派生類的基類,也就要先實(shí)例化這個(gè)基類的基類,以此類推,就要先實(shí)例化object類。

  因此無(wú)論實(shí)例化一個(gè)什么類,都需要先實(shí)例化System.Object類,也就是先執(zhí)行System.Object.Object()。

  如果一個(gè)類使用非默認(rèn)的構(gòu)造函數(shù),默認(rèn)的情況是在其基類上尋找匹配于這個(gè)構(gòu)造函數(shù)簽名的構(gòu)造函數(shù)。如果沒(méi)有找到,則使用基類的默認(rèn)構(gòu)造函數(shù)。例如:

如果以下面的方式實(shí)例化:

  MyDerivedClass myObj = newMyDerivedClass();

  則執(zhí)行的順序如下:System.Object.Object()——MyBaseClass.MyBaseClass()——MyDerivedClass.MyDerivedClass()

  MyDerivedClass myObj = newMyDerivedClass(1);

  則執(zhí)行的順序如下:

 
 
 
 
  1. System.Object.Object()——MyBaseClass.MyBaseClass(int i)——MyDerivedClass.MyDerivedClass(int i)
  2.   MyDerivedClass myObj = newMyDerivedClass(1,1);

  則執(zhí)行的順序如下:System.Object.Object()——MyBaseClass.MyBaseClass()——MyDerivedClass.MyDerivedClass(int i, int j)

  但是如果希望執(zhí)行的順序?yàn)椋篠ystem.Object.Object()——MyBaseClass.MyBaseClass(int i)——MyDerivedClass.MyDerivedClass(int i, int j)

  則需要將MyDerivedClass的非默認(rèn)構(gòu)造函數(shù)改為:

 
 
 
 
  1.   publicclassMyDerivedClass : MyBaseClass
  2.   {
  3.   ...
  4.   publicMyDerivedClass(inti, intj) : base(i)
  5.   {
  6.   }
  7.   }

  base關(guān)鍵字指定.net實(shí)例化過(guò)程使用基類中匹配指定簽名的構(gòu)造函數(shù)。

  除了base關(guān)鍵字外,還有一個(gè)this關(guān)鍵字,它指定在調(diào)用指定的構(gòu)造函數(shù)前,.net實(shí)例化過(guò)程對(duì)當(dāng)前類使用非默認(rèn)的構(gòu)造函數(shù)。如:

 
 
 
 
  1.   publicclassMyDerivedClass : MyBaseClass
  2.   {
  3.   publicMyDerivedClass() : this(5, 6)
  4.   {
  5.   }
  6.   ...
  7.   publicMyDerivedClass(inti, intj) : base(i)
  8.   {
  9.   }
  10.   }

  則執(zhí)行的順序如下:System.Object.Object()——MyBaseClass.MyBaseClass(int i)——MyDerivedClass.MyDerivedClass(int i, int j)——MyDerivedClass.MyDerivedClass()


當(dāng)前文章:淺談面向?qū)ο蟪绦蛟O(shè)計(jì)C#中的類
網(wǎng)頁(yè)路徑:http://www.5511xx.com/article/cdgeeps.html