C 基礎 物件導向的基本概念

2021-09-29 15:26:35 字數 2307 閱讀 8862

內容摘抄與《大話設計模式》

物件:是乙個自包含的實體,用一組可識別的特性和行為來標識.

類:就是具有相同屬性和功能的物件的抽象的集合.

構造方法:又叫建構函式,其實就是對類進行初始化,構造方法與類同名,無返回值,也不需要viod,在new的時候呼叫

方法過載:提供了建立同名的多個方法的能力,但這些方法需使用不同的引數型別.

屬性:是乙個方法或一對方法,但在呼叫它的**看來,它是乙個字段,屬性有兩個方法get和set.

get:訪問器返回與宣告的屬性相同的資料型別,表示意思是呼叫時可以得到內部欄位的值或引用.

set:訪問器沒有顯示設定引數,但它有乙個隱士引數,用關鍵字value表示,它的作用是呼叫屬性是可以給內部欄位或引用賦值.

字段:是儲存類要滿足其設計所需要的資料,欄位是與類相關的變數.

封裝:每個物件都包含它進行操作所需要的所有資訊,這個特性稱為封裝,因此物件不必依賴其它物件來完成自己的操作.

封裝的好處:

1.良好封裝能夠減少耦合

2.類內部的實現可以自由地修改

3.類具有清晰的對外介面

繼承: 物件的繼承代表了一種"is-a"的關係,如果兩個物件a和b,可以描述為』b』是』a』,則表明b可以繼承a.繼承者還可以理解為是對被繼承者的特殊化,因為它除了具備被繼承者的特性外,還具備自己獨有的個性.繼承定義了類如何相互關聯,共享特性.繼承的工作方式是,定義父類和子類,或叫做基類和派生類,其中子類繼承父類的所有特性.子類不但繼承了父類的所有特性,還可以定義新的特性.

優點:繼承使得所有子類公共的部分都放在了父類,使得**得到了共享,這就避免了重複,另外,繼承可以使得修改或擴充套件而來的實現都較為容易.

缺點:父類變,子類不得不變,繼承會破壞包裝,父類實現細節暴露給子類.

多型:多型表示不同的物件可以執行相同的動作,但要通過它們自己的實現**來執行.

1.子類以父類的身份出現

2.子類在工作時以自己的方式來實現

3.子類以父類的身份出現時,子類特有的屬性和方法不可以使用

概念:不同的物件可以執行相同的動作,但要通過它們自己的實現**來執行.

多型的原理:當方法被呼叫時,無論物件是否被轉換為其父類,都只有位於物件繼承最末端的方法實現會被呼叫.虛方法是按照其執行時型別而非編譯時型別進行動態繫結呼叫的.

重構有無窮的魅力,通過對從重複**的審視,可以有提取公共**的**塊,將共有方法提取到父類中.

抽象類: 抽象類不能例項化.抽象方法是必須被子類重寫的方法.如果類中包含抽象方法,那麼類就必須定義為抽象類,不論是否還包含其他一般的方法.抽象類擁有盡可能多的共同**,擁有盡可能少的資料.抽象類通常代表乙個抽象概念,他提供乙個繼承的出發點,當設計乙個新的抽象類時,一定是用來繼承的,所以,在乙個繼承關係形成的等級結構裡面,樹葉節點應當是具體類,而樹枝節點均應當是抽象類[j&dp]

介面:是把隱式公共方法和屬性組合起來,以封裝特定功能乙個集合.一旦類實現了介面,類就可以支援所有投指定的所有屬性和成員,實現介面的類就必須要實現介面中所有方法和屬性.

1.類是對物件的抽象,抽象類是對類的抽象,介面是對行為的抽象

2.如果行為跨越不同類的物件,可使用介面;對於一些相似的類物件,用繼承抽象類.

3.從設計角度講,抽象類是從子類中發現了公共的東西,泛化出父類,然後子類繼承父類,而介面根本不知道子類的存在,方法如何實現還不確定,預先定義.

陣列優點:在記憶體中連續儲存,可以快速而容易地從頭到尾遍歷元素,可以快速修改元素等等

陣列缺點:建立時必須要指定陣列變數的大小,還有在兩個元素之間新增元素也比較困難.

arraylist:是命名空間sysytem.collections 下的一部分,它是使用大小可按需動態增加的陣列實現ilist介面.

arraylist缺點:arraylist不是型別安全的,常常會被拆箱裝箱.所謂裝箱就是把值型別打包到object引用型別的乙個例項中,所謂拆箱就是指從物件中提取值型別.

相對於簡單的賦值而言,裝箱和拆箱過程需要進行大量的計算.對值型別進行裝箱時,必須分配並構造乙個全新的物件,其次,拆箱所需的強制轉換也需要進行大量的計算.

泛型:是具有佔位符(型別引數)的類/結構/介面和方法,這些佔位符是類/結構/介面和方法所儲存或使用的乙個或多個型別的佔位符.通常情況下都建議使用泛型集合,因為這樣可以獲得型別安全的直接優點而不需要從基集合型別派生並實現型別特定成員你.此外,如果集合元素為值型別,泛型集合型別的效能通常優於對應的非泛型集合型別,因為使用泛型時不必對元素進行裝箱.

委託:委託是對函式的封裝,可以當做給方法的特徵指定乙個名稱.

事件:事件是委託的一種特殊形式.

委託是一種引用方法的型別.一旦為委託分配了方法,委託將與該方法具有完全相同的行為.事件是在說在發生其它類或物件關注的事情時,類或物件可以通過事件通知他們.

物件導向基礎 基本概念

1 物件導向程式設計的目的 用人類思維的方式編寫 並交給計算機執行 2 物件導向三大特徵 封裝 繼承 多型 3 什麼是類?什麼是物件?類和物件的區別?a 類是模具,建立物件的模具,抽象的。類是一種資料型別,使用者自定義的資料型別 定義了要開闢多大記憶體 類組成 字段 類中的變數,如,int num ...

C 物件導向的基本概念

類和物件 class 為類,是一種概念 類和型別在c 是通的 object 為物件,是一種實體 c語言的源 實際上是函式的集合 c 物件之間傳送訊息,告訴別人 what to do 自己決定,自己採取相應的步驟去做 至於具體怎麼做的,不關你的事情 而不是 how to do 每乙個物件都有它自己的記...

物件導向 基本概念

物件 由其責任定義的,能夠自己負責自己,從而簡化了使用物件的控制程式的任務。將責任轉移到更區域性的層次。類 class 根據物件所具有的責任定義物件的型別。責任 行為或狀態,這些分別是由方法和或資料實現的。具體類 concrete cass 實現抽象類某一特定型別行為的類,具體類是乙個概念特定不變的...