欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#面向?qū)ο缶幊袒A(chǔ)概念匯總

 更新時(shí)間:2018年10月25日 10:05:33   作者:Czhenya  
今天小編就為大家分享一篇關(guān)于C#面向?qū)ο缶幊袒A(chǔ)概念匯總的文章,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧

一、類與實(shí)例

對(duì)象是一個(gè)自包含的實(shí)體,用一組可識(shí)別的特性和行為類標(biāo)示,面向?qū)ο缶幊?,就是針?duì)對(duì)象編寫類,就是具有相同屬性和功能的抽象的集合。

注意:

  1. 類名稱首字母要大寫,多個(gè)單詞則各個(gè)首字母大寫;
  2. 對(duì)外公開的方法需要用public修飾符

實(shí)例,就是一個(gè)真實(shí)的對(duì)象,實(shí)例化就是創(chuàng)建對(duì)象過程,使用new關(guān)鍵字來創(chuàng)建。

二、構(gòu)造方法

構(gòu)造方法又叫構(gòu)造函數(shù),其實(shí)就是對(duì)類進(jìn)行初始化,構(gòu)造方法與類同名,無返回值,也無需void,在new時(shí)候調(diào)用。

所有的類都有構(gòu)造方法,如果你不編碼則系統(tǒng)會(huì)默認(rèn)生成空的構(gòu)造方法,若你有定義的構(gòu)造方法,那么默認(rèn)的構(gòu)造方法便會(huì)失效

例子:

三、方法重載

方法的重載提供了創(chuàng)建同名的多個(gè)方法的能力,但這些方法需使用不同法人參數(shù)類型。

注意:方法重載時(shí),兩個(gè)方法必須要方法名相同,但參數(shù)名不和參數(shù)個(gè)數(shù)必須要有所不同。

重載的好處:可以在不改變?cè)椒ǖ幕A(chǔ)上新增功能。

四、屬性與修飾符

屬性是一個(gè)方法或一對(duì)方法,但在調(diào)用他的代碼來看,他是一個(gè)字段,即屬性適合一字段的方式使用方法調(diào)用的場(chǎng)合。

字段是存儲(chǔ)類要滿足七十幾所需要的數(shù)據(jù),字段是與類相關(guān)的變量。

例子:

public和private區(qū)別:

他們都是修飾符,public表示他所修飾的類成員可以允許其他任何類來訪問。private只允許同一個(gè)類中的成員訪問,其他類包括他的子類都無法訪問。

屬性的get和set方法的含義:

屬性有:兩個(gè)方法get和set,get訪問器返回與聲明的屬性相同的數(shù)據(jù)類型,表示的意思是調(diào)用時(shí)可以得到內(nèi)部字段的值或引用;set訪問器沒有顯示設(shè)置參數(shù),但它有一個(gè)隱式參數(shù),用關(guān)鍵字value表示,他的作用是調(diào)用屬性時(shí)可以給內(nèi)部字段或者引用賦值。

五、封裝

每個(gè)對(duì)象都包含他能進(jìn)行操作所要的所有信息,這個(gè)特性稱為封裝,因此對(duì)象不必依賴其他對(duì)象來完成自己的操作。

封裝的好處:

  1. 良好的封裝,能夠減少耦合
  2. 類的內(nèi)部的實(shí)現(xiàn)可以自由的修改
  3. 類具有清晰的對(duì)外接口

六、繼承

對(duì)象的繼承代表了一種is-a的關(guān)系,如果兩個(gè)對(duì)象,A和B,可以描述為B是A,則表明B可以繼承A.繼承者可以理解為是被繼承者的特殊化,因?yàn)樗司邆浔焕^承者的特性外,還具備自己獨(dú)有的個(gè)性,繼承定義了類如何相互關(guān)聯(lián),共享特性。繼承的工作方式是定義父類和子類,或者叫基類和派生類,其中類繼承父類的所有特性,子類不但繼承父類的所有的特性,還能自己定義新的特點(diǎn)。

學(xué)好繼承三個(gè)注意點(diǎn):

如果子類繼承父類:

  1. 子類擁有父類非private的屬性和功能
  2. 子類具有自己的屬性和功能,即子類可以擴(kuò)展父類沒有的屬性和功能;
  3. 子類還可以以自己的方式實(shí)現(xiàn)父類的功能(方法重寫)

protected表示繼承時(shí),子類可以對(duì)父類有完全訪問權(quán)

子類從他的父中繼承的成員有方法,域,屬性,事件,索引器。但對(duì)于構(gòu)造方法,他不能被繼承,只能被調(diào)用,對(duì)于調(diào)用父類的成員,可與用base關(guān)鍵字。

如果不用繼承的話,如果要修改功能,就必須在所有重復(fù)的方法中修改,代碼越多,出錯(cuò)的可能性越大,而繼承優(yōu)點(diǎn)是,繼承使得所有子類公共的部分都放在了父類,使得代碼得到了共享,這就避免了重復(fù),另外,繼承可以使得修飾或者擴(kuò)展而來的擴(kuò)展都比較容易。

繼承的缺點(diǎn):父類變,子類不得不變。

繼承會(huì)破壞包裝,父類實(shí)現(xiàn)細(xì)節(jié)暴露給子類

七、多態(tài)

多態(tài)表示不同的對(duì)象可以執(zhí)行相同的動(dòng)作,但要通過他們自己的代碼類執(zhí)行

  1. 子類以父類的身份出現(xiàn)
  2. 子類在工作時(shí)以自己的方式來實(shí)現(xiàn)
  3. 子類以父類的身份出現(xiàn)時(shí),子類特有的屬性和方法不可以使用

虛方法和重寫

為了是子類的實(shí)例完全接替來自父類的類成員,父類必須將該成員聲明為虛偽的,這是通過在改成員的返回值類型之前添加virtual關(guān)鍵字來實(shí)現(xiàn),子類可以使用override關(guān)鍵字,將父類實(shí)現(xiàn),替換為自己實(shí)現(xiàn),這就是方法的重寫override。

多態(tài)的原理是當(dāng)方法被調(diào)用時(shí),無論對(duì)象是否被轉(zhuǎn)換為其父類,都只有位于對(duì)像繼承鏈最末端的方法實(shí)現(xiàn)會(huì)被調(diào)用,也就是說,虛方法是按照其運(yùn)行時(shí)類型,而非編譯時(shí)類型進(jìn)行動(dòng)態(tài)綁定調(diào)用的。

八、重構(gòu)

C#允許把類和方法聲明為abstract,即抽象方法

注意:

  1. 抽象類不能被實(shí)例化
  2. 抽象方法是必須被子類重寫的方法
  3. 如果類中包含抽象方法那么類就必須定義為抽象類,不論是否還包括其他一般方法
  4. 我們應(yīng)該考慮讓抽象類擁有盡可能多的共同代碼,擁有盡可能少的數(shù)據(jù)。

抽象類通常代表一個(gè)抽象概念,他提供一個(gè)繼承的觸發(fā)點(diǎn),當(dāng)設(shè)計(jì)一個(gè)新的抽象類時(shí),一定是用來繼承的 ,所以在一個(gè)以繼承關(guān)系形成的等級(jí)結(jié)構(gòu)里,樹葉節(jié)點(diǎn)應(yīng)該是具體類,樹枝節(jié)點(diǎn)均應(yīng)該是抽象類。

九、接口

關(guān)鍵字interface

接口是把隱式公共方法和屬性組合起來,以封裝特定功能的集合,一旦實(shí)現(xiàn)了接口,類就可以支持接口所指定的所有屬性和成員,聲明接口和聲明抽象類完全相同,但不允許提供接口中任何成員不能的執(zhí)行方式,實(shí)現(xiàn)接口的類,就必須要實(shí)現(xiàn)接口的所有方法和屬性。

一個(gè)類可以支持多個(gè)接口,多個(gè)類也可以支持相同的接口,接口的命名前面要加上大寫字母“I”

注意:

接口用interface聲明,而不是class,接口名稱前面要加I,接口的方法或?qū)傩郧懊娌荒苡行揎椃?、方法沒有方法體
抽象類和接口的區(qū)別:

  1. 抽象類可以給出一些成員的實(shí)現(xiàn),接口卻不包含成員體的實(shí)現(xiàn),抽象類的抽象成員可以被子類部分實(shí)現(xiàn),接口的成員必須被實(shí)現(xiàn)類完全實(shí)現(xiàn),一個(gè)類只能繼承一個(gè)抽象類,但可以實(shí)現(xiàn)多個(gè)借口
  2. 類是對(duì)對(duì)象的抽象,抽象類是對(duì)類的抽象,接口是對(duì)行為的抽象
  3. 如果行為跨越不同類的對(duì)象,可使用接口;對(duì)于一些相似的類對(duì)象,用繼承抽象類。

參考自大話數(shù)據(jù)結(jié)構(gòu)

面向?qū)ο蟮脑O(shè)計(jì)原則:

  1. 單一職責(zé)原則 (The Single Responsiblity Principle,簡(jiǎn)稱SRP):一個(gè)類,最好只做一件事,只有一個(gè)引起它的變化.
  2. 開放-封閉原則 (The Open-Close Principle,簡(jiǎn)稱OCP):對(duì)于擴(kuò)展是開放的,對(duì)于更改是封閉的
  3. Liskov 替換原則(The Liskov Substitution Principle,簡(jiǎn)稱LSP):子類必須能夠替換其基類
  4. 依賴倒置原則(The Dependency Inversion Pricinple,簡(jiǎn)稱DIP):依賴于抽象
  5. 接口隔離原則 (The Interface Segregation Principle,簡(jiǎn)稱ISP):使用多個(gè)小的專門的接口,而不要使用一個(gè)大的總接口。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

相關(guān)文章

  • c# 方法可變數(shù)量的參數(shù)

    c# 方法可變數(shù)量的參數(shù)

    這個(gè)方法除去params,是一個(gè)普通的方法,接受int數(shù)組,返回組中的所以項(xiàng)之和
    2012-10-10
  • C#.net中的類型轉(zhuǎn)換詳細(xì)介紹

    C#.net中的類型轉(zhuǎn)換詳細(xì)介紹

    C#.net中的類型轉(zhuǎn)換詳細(xì)介紹,需要的朋友可以參考一下
    2013-04-04
  • C# WebApi CORS跨域問題解決方案

    C# WebApi CORS跨域問題解決方案

    本篇文章主要介紹了C# WebApi CORS跨域問題解決方案,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-07
  • 一文帶你了解 C# DLR 的世界(DLR 探秘)

    一文帶你了解 C# DLR 的世界(DLR 探秘)

    DLR 是 C#4.0 新引進(jìn)來的概念,其主要目的就是為了動(dòng)態(tài)綁定與交互。下面小編給大家?guī)硪黄诲e(cuò)教程,一文帶你了解 C# DLR 的世界,需要的朋友可以參考下
    2020-02-02
  • C#先判斷是否存在再創(chuàng)建文件夾或文件與遞歸計(jì)算文件夾大小

    C#先判斷是否存在再創(chuàng)建文件夾或文件與遞歸計(jì)算文件夾大小

    這篇文章介紹了C#先判斷是否存在再創(chuàng)建文件夾或文件與遞歸計(jì)算文件夾大小的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • C#實(shí)現(xiàn)簡(jiǎn)單訂單管理程序

    C#實(shí)現(xiàn)簡(jiǎn)單訂單管理程序

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)簡(jiǎn)單訂單管理程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • C#中實(shí)現(xiàn)Json序列化與反序列化的幾種方式

    C#中實(shí)現(xiàn)Json序列化與反序列化的幾種方式

    C#中實(shí)現(xiàn)Json的序列化與反序列化也算是個(gè)老話題,那么在這篇文章中我們將老話重提,本文中將會(huì)學(xué)到如何使用C#,來序列化對(duì)象成為Json格式的數(shù)據(jù),以及如何反序列化Json數(shù)據(jù)到對(duì)象。有需要的朋友們可以參考借鑒,下面來跟著小編一起學(xué)習(xí)學(xué)習(xí)吧。
    2016-12-12
  • C#學(xué)習(xí)筆記之狀態(tài)模式詳解

    C#學(xué)習(xí)筆記之狀態(tài)模式詳解

    這篇文章主要為大家詳細(xì)介紹了C#學(xué)習(xí)筆記之狀態(tài)模式的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • C#實(shí)現(xiàn)對(duì)Json字符串處理實(shí)例

    C#實(shí)現(xiàn)對(duì)Json字符串處理實(shí)例

    這篇文章主要介紹了C#實(shí)現(xiàn)對(duì)Json字符串處理,通過一個(gè)json實(shí)例分析了C#進(jìn)行JSON操作的方法,需要的朋友可以參考下
    2014-09-09
  • C#中event內(nèi)存泄漏總結(jié)

    C#中event內(nèi)存泄漏總結(jié)

    本篇文章給大家分享了在C#中event內(nèi)存泄漏的相關(guān)知識(shí)點(diǎn)以及代碼分享,有興趣的朋友參考學(xué)習(xí)下。
    2018-03-03

最新評(píng)論