OOP核心思想:封裝,繼承,多態。算法
理解:編程
對象是由數據和允許的操做組成的封裝體,與客觀實體有直接對應關係,一個對象類定義了具備類似性質的一組對象。而每繼承性是對具備層次關係的類的屬性和操做進行共享的一種方式。所謂面向對象就是基於對象概念,以對象爲中心,以類和繼承爲構造機制,來認識、理解、刻畫客觀世界和設計、構建相應的軟件系統。數據結構
oop的基本思想:把組件的實現和接口分開,而且讓組件具備多態性。函數
oop概念呢:oop
OOP是九十年代才流行的一種軟件編程方法。它強調對象的「抽象」、「封裝」、「繼承」、「多態」。咱們講程序設計是由「數據結構」+「算法」組成的。從宏觀的角度講,OOP下的對象是以編程爲中心的,是面向程序的對象。咱們今天要講的OOD是面向信息的對象,是以用戶信息爲中心的。prototype
對象的產生:設計
1、是以原型(prototype)對象爲基礎產生新的對象。對象
2、是以類(class)爲基礎產生新對象。繼承
封裝
封裝:讓抽象的事物保護自身的狀態,防止非其餘事物對其進行錯誤的狀態改變操做。咱們抽象完一個事物後,可能在特定的條件下,其自己的狀態須要改變,可是這個改變並容許其餘的事物來進行,這樣的改變只容許這個事物認同的操做域來進行,能夠是該事物自己,也能夠是它信任的其餘事物。這樣咱們就能對咱們抽象完的每一個事物進行自身數據的保護接口
繼承
繼承:讓抽象出來的事物具備本應該具備的聯繫。咱們能用類來描敘一個抽象的事物,同時能用對象來描敘具體的事物,可是這些事物都是獨立的,彼此之間沒有應該有的聯繫,這樣的孤立設計並不符合現實邏輯,讓事物之間的聯繫獲得描敘,咱們就須要繼承,例如:發明自行車的人並非一開始就發明了多人自行車,這些都是從雙輪自行車演變和發展而來,可是他們都有共同的特色,有輪子,有車架子,等等。讓咱們用繼承的關係把這兩個現實的抽象聯繫起來,這樣咱們就能設計出不孤立的類,而是和其餘類有聯繫的類。
多態多態:用一種解決方案來解決對一類問題,對於不一樣的事物解決途徑和結果不一樣。在C++中實現多態性有三種方法,分別是:虛函數,函數重載和運算符重載。這三種方法你們均可以看到咱們解決問題的初衷是同樣的,都是利用同名函數,同名的運算符號,這抽象出來也就是解決問題的方法,可是對於不一樣的事物的反應倒是不一樣的,例如:當用一個getPadNumber()方法來獲得普通自行車和雙人自行車的坐墊數量的時候,返回的結果是一個和兩個,這就是具體的事物返回的結果不一樣。