面向對象思想得由來是,起初我們的需求單一或者特別簡單時,可以一步一步的去進行操作,並且效率也不是很低,可是隨着需求進一步的提高,所需要實現的功能也就越多,我們發現需要面對的每一個步驟很麻煩,所以就開始探索,可不可以將這些步驟和功能再進行封裝,封裝時根據不同的功能,進行不同的封裝,功能類似的封裝在一起。這樣結構就清晰明瞭了,用得時候直接找到對應的類就行了。
舉個例子,就比如我們日常生活中經常用到的熱水器,每次洗澡就可以直接使用熱水,但是如果沒有熱水器,我們需要去用壺接水,然後將其倒入鍋中,還需要尋找加熱方式,比如燒柴或者煤氣竈,然後燒開之後將開水和涼水混合我們纔可以洗個舒服的熱水澡,但是,後來有人將這一系列操作封裝成熱水器,我們只需要直接打開開關,無需思考任何流程就可以直接洗澡了,無疑這種封裝將複雜的事情簡單化,我們從執行者變成了指揮者。這其中,關於如何將水燒開一系列的操作都是面向過程的,直接控制熱水器是面向對象的思想。
面向對象的最高境界就是萬物皆對象。在面向對象的開發中,我們就是不斷地創建對象使用對象指揮對象做事。面向對象有三個基本特徵:封裝,繼承和多態。
那麼類與對象又是什麼關係呢?對於現實世界中的事物,往往會擁有屬性和行爲兩種概念,比如手機,顏色、型號、品牌都是它的屬性,用它打電話,發短信,聊天等都是手機的行爲。所以一個類應該也包含了這兩種東西。我們稱爲成員變量和成員方法。類是一組相關屬性和行爲的集合,對象是該類事物的具體實現。
下面是類和對象關係圖: