C 物件導向設計基礎 二(中)

2021-06-02 21:49:46 字數 1854 閱讀 2215

學習《asp.net 3.5 開發大全》

一、類的方法

1.給方法傳遞引數(a.傳遞值。b.傳遞物件。c.this關鍵字。注:this關鍵字能夠訪問類成員,當引數名和類成員中欄位名稱相同時,可以使用this關鍵字)

2.通過引用來傳遞引數

通常情況下,方法只能返回乙個值,使用ref可可以返回多個值的方法(注:傳遞乙個變數的引用給乙個方法)。

3.方法的過載(簡單的理解就是:方法名相同,引數型別不同或者個數不同)

a.設計一些相同的方法時,如果只是引數不同,則使用過載。

b.如果為程式新增乙個新功能,過載乙個方法是不錯的選擇。

c.如要實現類中相似的功能,則可以考慮使用過載。

二、封裝

在c#中,封裝就是將類成員中的字段、方法以及屬性事件、委託等放在乙個公共的結構中。按照乙個公共的方法把資料和操作這些資料的方法進行組裝(封裝),同時為物件指定操作和屬性,從而建立了新的資料型別提供給使用者使用,而保證了私密的內容不會被使用者察覺。

三、屬性

屬性的無非就是為私有的變數的訪問許可權做了調整,通過屬性來訪問使用者本不應該訪問的私有變數。

四、繼承

1.繼承的基本概念:在應用程式開發過程中,需要完成功能相近但是實現不同的類來抽象物件的時候,就需要用到繼承。

2.建立派生類:建立了派生類,說明了該派生類繼承了基類的共有或保護的方法和屬性,在派生類中可以無需在宣告變數。(使用「:」運算子說明該類是派生自乙個基類。例:派生類名後面 :基類名)

注意:當基類的字段或者方法等訪問修飾符為public或protected時,繼承的派生類可以使用基類的字段或方法。但是當基類的字元按或方法等訪問修飾符為private時,繼承的派生類不能使用基類的private欄位或方法。

3.物件的建立:如果乙個派生類的基類有多個建構函式,而開發人員想指定建構函式時,必須使用base關鍵字。

4.實用抽象類:在類被建立的時候,派生類的建構函式在執行前,會首先執行基類的建構函式。當宣告或者設計乙個類的結構時,基類往往是不完善的,也不應該把基類的類成員例項化。因為基類的作用是為了整合派生類中公共的相同或相似的屬性或字段,而對基類的成員賦值或者建立基類的物件,會使類的結構變得混亂。(注:建立物件時,如果對基類使用abstract關鍵字,那麼編譯器會阻止基類的直接例項化,從而可以強制的讓開發人員使用正確的類讓類層次結構正確並容易閱讀。)

5.使用密封類:密封類是一種永遠不能做基類的類。其他的類不能從此類派生,從而保證了密封類的密封性和安全性,使用sealed關鍵字能夠建立密封類。(注:注意:設計類的時候,通常情況下是不需要將類設定為密封類的,因為密封類會讓類的擴充套件性非常的差,這個類也無法再次擴充套件和派生。但是,出於某種目的,當程式塊只需要完成某些特定的功能或者在商業上為了保密,則可以使用密封類對類進行密封,保證類的可靠性。)

五、多型

1.抽象方法:抽象方法是乙個沒有對類成員中方法進行具體實現的一種方法,抽象方法的實現必須讓派生類實現。抽象方法不允許有方法體,同樣不允許包含括號,只允許宣告抽象方法。在派生類中,必須實現基類中的抽象方法。(在派生類中,為了實現抽象的方法,就必須使用override關鍵字,來表示此方法是對基類的抽象方法的實現。)

2.覆蓋:當基類建立了乙個方法來描述類物件的時候,派生類的同一方法必須實現不同的細節,那麼就可以對基類的方法進行覆蓋。當編譯器編譯**的時候,會將派生類中的方法覆蓋基類的方法,並在派生類中物件執行的時候,執行派生類中的方法,而不會執行基類中的方法。(注意:雖然派生類可以覆蓋基類的方法,但是在設計類的時候,推薦使用抽象類或者介面來實現基類,因為這樣便於閱讀和維護,也提高了**的安全性。)

3.虛方法的抽象類:(跳過,暫時無法理解)

4.抽象屬性

C 物件導向基礎(二)

能夠準確理解下面這些問題是從c程式設計師向c 程式設計師高階的基礎。當然了,這只是一部分。物件導向三大特性?public protected private的區別?c 空類有哪些成員函式?建構函式 構造函式呼叫順序,析構函式呢?構造的時候先呼叫基類的建構函式,再呼叫派生類的建構函式 析構的時候先呼叫...

C 基礎之物件導向(二)

友元函式 1 一般在操作符過載時會使用,其他情況很少使用。2 在a類中宣告函式b是a類的友元函式,則函式b可以訪問a的資料成員。3 友元函式至少有乙個引數 這個引數為宣告類的引用 因為 全域性函式是沒有this指標的,我們只能通過引數來確定訪問的是那個物件的資料成員 如果全域性函式找不到this指標...

物件導向設計基礎 不變物件

1 使用場景 牽涉到對資料物件進行修改時,可能由於修改的順序而造成資料的錯亂,此時使用不變物件就可以避免,而且還可以不使用高開銷的synchronizing方法。乙個資料模型類的例項所持有的資料在整個生命週期中都不變,這個類就會是執行緒安全。2 設計方法 a 所有的例項變數都必須在建構函式中設定,因...