C 物件導向第五天總結

2021-06-28 11:07:14 字數 1914 閱讀 6570

1. 訪問修飾符

2. 設計模式(23種設計模式)

《設計模式:可復用物件導向軟體的基礎》

設計這個專案的一種方式

簡單工廠設計模式

簡單工廠最核心的部分 模擬工廠       

用乙個方法來模擬工廠生產筆記本的過程

這個工廠最終要製造出(返回)乙個筆記本的父類

根據使用者輸入的品牌來建立筆記本物件

返回乙個父類,但父類中裝的是子類物件

之後再使用多型,可以遮蔽子類之間的差異性

3. 值型別和引用型別

值型別:int double char decimal bool enum struct

引用型別:string 陣列 自定義類 集合 object 介面

值傳遞和引用傳遞

值型別在複製的時候,複製的是這個值本身

引用型別在複製的時候,複製的是這個值的引用

加了ref後 將值傳遞 改變成 引用傳遞

字串的不變特性

4. 序列化:將物件轉化為二進位制

反序列化:將二進位制轉化為物件

作用:傳輸資料

1)將這個類標記為可序列化 [serializable]

2)使用binaryformatter類 bf.serialize  bf.deserialize

5. 部分類

public partial class person

6. 密封類

public sealed class person

密封類不能被繼承 但可以繼承別的類

7. 重寫父類的tostring() equals(object obj) gethashcode()

這三個函式都是object類的虛方法

8. 介面就是乙個規範、能力

[public] inte***ce 介面名i...able

iflyable fly = new 繼承介面的子類

這樣同樣一條語句 fly.成員 就可以遮蔽不同子類物件的差異了

9. 介面的特點

1)介面不能進行例項化(其他不能例項化的有抽象類,靜態類)

2)介面中的成員不允許新增訪問修飾符,預設就是public

3)介面中的成員不能有任何實現(「光說不做」,只是定義了一組未實現的方法)

不允許寫有方法體的函式

4)介面的成員中可以包含自動屬性,方法和索引器(這三種本質都是方法)

介面不能包含字段(因為欄位是用來儲存資料的,介面不儲存資料),也沒有建構函式

5)介面與介面可以繼承,並且可以多繼承

6)介面並不能去繼承乙個類,而類可以繼承介面

介面只能繼承於介面,而類既可以繼承介面,也可以繼承類

7)實現介面的子類必須實現該介面的全部成員

8)乙個類可以同時繼承乙個類並實現多個介面,如果乙個子類同時繼承了父類a,並實現了介面ia

那麼語法上a必須寫在ia的前面

9)顯式實現介面的目的:解決方法的重名問題

什麼時候顯式地去實現介面:當繼承的介面中的方法和類本身所具有的方法同名且同引數的時候,

需要顯式的實現介面

如:void fly() --類本身所具有的方法

void iflyable.fly(){}--介面具有的方法

10)當乙個抽象類實現介面的時候,需要子類去實現介面

10總結

什麼時候用虛方法來實現多型?

父類中的方法有預設的實現,並且父類需要被例項化,這時可以考慮將父類定義成乙個普通類,用虛方法

什麼時候用抽象類來實現多型?

如果父類中沒有預設實現,父類也不需要被例項化,則可以將該類定義為抽象類

什麼時候用介面來實現多型?

這幾個類中根本找不出來父類,但它們都有乙個共同的能力,這個時候用介面

11 guid

能幫助我們產生獨一無二的編號

guid.newguid().tostring()

erlang第五天總結

1.程序裡的變數是私有的,erlang shell本身是乙個程序,所以當開啟多個erlang shell執行gen tcp conncet返回的socket是相同,而在每乙個erlang shell裡面多次呼叫gen tcp connect返回的socket是不同 2.gen tcp recv會阻塞...

C 學習第五天

c 中的is和as is可用於任何型別。例如 int a 10 a is object true object o 10 o is int true o person o is int false as右側型別必須為引用型別或可空型別。as操作如果失敗,不丟擲異常,而是返回null 結構 struc...

C語言第五天

c中陣列詳解 從函式返回陣列 小結c指向陣列的指標 節點陣列的初始化 指標與陣列名的區別 c enum 列舉 c語言支援陣列資料結構,它可以儲存乙個固定大小的相同型別元素的順序集合。陣列是用來儲存一系列資料,但它往往被認為是一系列相同型別的變數。陣列的宣告並不是宣告乙個個單獨的變數,比如num0 n...