面向對象是把一組數據結構和處理他們的方法組成對象,把具有相同行爲的對象歸納成類,通過封裝隱藏類的內部細節,通過繼承使類得到泛化,通過多態實現基於對象類型的動態分派。
之前在面試Java的時候遇到關於面向對象的問題,好久沒複習,概念都忘了,當時沒能回答完整。今天整理了一下,徹底搞懂了什麼叫面向對象,下面用通俗的話詳細講解面向對象的相關概念。
注意這裏提到的幾個關鍵詞:數據、方法、對象、類、封裝、繼承、多態。
1.數據
首先說數據,什麼是數據?數據是信息的表現形式和載體,它英文名稱叫Data。
在百度百科上的基礎解析:數據是事實或觀察的結果,是對客觀事物的邏輯歸納,用於表示客觀事物的未經加工的原始素材。
舉個栗子。我們日常中用到的數字0,1,2,3,4,5、表示天氣的攝氏度,
學生的檔案記錄、
貨物運輸情況等等
這些都是數據,數據經過加工後就變成了信息。在計算機中,數據以二進制信息單元0,1來表示。
2.方法
方法的基本解析是爲達到某種目的而採取的途徑,步驟和手段。
在我們的軟件編程語言中,如果將函數定義爲類定義的一部分或者將它與某個對象綁定,則該函數稱爲方法。
3.對象
這個是我們程序員夢寐以求的對象是吧。
對象在百度百科中的基本解析是描寫或寫實的特定人或物。在計算機語言中表現爲客觀世界中存在的人、事、物體等實體在計算機邏輯中的映射。
4.類
什麼是類?類就是分類,在面向對象中類是實現信息封裝的基礎。
類是一種引用數據類型,也稱類類型。每個類包含數據說明和一組操作數據的方法,類的實例就是對象。
舉個栗子:
人類就是一個基本的類類型,而我們就是這個類類型的一個具體的對象。
人類包含有姓名、性別、年齡等等這些數據說明,同時也有走路、吃飯、工作這些傳遞能量信息的方法。
5.封裝
封裝是對一類事物進行抽象描述。封裝是個動詞,通過將姓名、性別、年齡等這些屬性抽象到人類這個類類型的過程就叫封裝。這個時候我們一說到人類就能聯想到這個人叫什麼名字,是男是女,多大年齡等。同時封也裝隱藏了一些特殊的屬性,比方說:這個人身上有多少錢,我們是不知道的。
6.繼承
繼承簡單理解就是兒子繼承爸爸,繼承可以使得子類具有父類公開的屬性和方法,同時拓展了自身的屬性和方法。
舉個栗子,父子關係,我繼承了我父親的所有公開屬性,都具有姓名、年齡、性別這些屬性,但是我擴展了寫代碼這樣的一個方法。這個寫代碼的方法是我獨有的,我父親不具備寫代碼的功能,這就是承。簡單說繼承就是在原有的基礎上進行了擴展。
7.多態
說到多態就要說一下“接口”這個概念,接口是什麼?
接口是一種特殊的類,在這個類中指定必須做什麼,但不用規定它如何去做。而多態就是以多種方式告訴這個接口類該如何去做。
舉個栗子,我定義一個接口類,這個類中只有一個吃飯的方法,那麼我們明白在這個類中就指定了需要做吃飯這件事,而吃什麼,怎麼吃,在哪裏吃,這就可以通過多態來實現。這個時候我們就可以再定義兩個類去實現這個這個接口,一個類實現這個吃飯的方法在中餐館用筷子吃魚;另一個類實現這個接口就是在西餐廳用刀叉吃牛排。
總結
面向對象是作爲Java編程入門的最基礎知識,我們在實際開發中可能很多基礎概念都忘記了,時不時的還是要把基礎撿起來,不斷加深鞏固。
關注我,及時收到更多關於Java、編程相關知識的整理。