聊聊面向對象 原

想要學習Java的同學應該都會或多或少地聽說過面向對象這個說法,那麼究竟什麼是面向對象?面向對象有什麼好處呢?理解面向對象對我們的學習,編碼有什麼好處呢?下面我們就來簡單瞭解下:
首相,大家得記住一點:面向對象是一種思想,一種思考方式。就像我們平時看人待物一般,爲什麼面向對象這麼受推崇,就是因爲它和我們人類對事物的認知方式比較接近。舉個例子,比如我們要去電腦城攢機,相信很多朋友都有過這種經歷。

那麼我們去到店裏面應該怎麼做呢?告訴店員我們要配一臺電腦,然後告訴他要求:顏色,性能要求,外形等等,然後店員就會根據我們的需要給我們寫一個單子,上面依次列着CPU、主板、內存、顯卡……,我們逐個去對比,砍價,最後敲定,裝機。在這個過程中,我們首先是要一個對象——電腦。然後在這個對象的基礎上對他的屬性進行要求限制:顏色要黑的、外形要大方的、顯示器要21寸的等。總之,我們就是在確定一個對象的基礎上,然後對它身上的各項屬性進行細化的要求。

再比如我們週末在家,準備好好休息下,洗洗衣服,給自己做頓好吃的,順便在網上買幾件東西。於是,早上起牀,我們洗漱完畢,要做很多事情。但是怎麼做呢?洗漱是一件事,洗衣服是一件事,做飯是一件事,上網購物又是一件事。這些事情我們都可以將它們看作一個個對象,然後以各種自己認爲合適的方式去組合它們,安排它們的先後執行順序。當然,有人說一件一件做起來比較麻煩,讓洗衣機洗衣服,自己可以開始做飯。這個當然可以了,這個多個對象同時啓動,在Java中有多線程的概念,就是來解決這個問題的,在後面我們會講到。

另外,在說到一個概念:所有的對象,任何的對象都可以歸類的。比如豬,牛,馬,羊之類的我們就可以歸類爲動物;牙刷,牙膏,毛巾之類的我們可以歸爲生活用品一類。但是,在這裏我們要注意的是,一件東西我們可以以它不同的屬性爲主,讓它歸到不同的類別裏面去:桌子,我們可以歸到生活用品,可以歸到木製品,可以歸到黃顏色的物體一類(假設這個桌子是黃顏色的)。總之,就是說一個對象它不一定僅僅屬於某一個類別,它有可能既是A,又是B,搞不好還是C。

上面我們說到,可以按照屬性(上面講的都是靜態的)講對象歸類,那麼一個對象除了前面提到的屬性之外還有一個很重要而且很特別的屬性——行爲。行爲也可以歸屬到對象的屬性裏面去,它也是屬於這個對象的。只是它表現的是這個對象可以幹什麼。(下面提到的屬性指的就是上面提到的靜態屬性,不包括行爲)

對一個對象來說,它所擁有的屬性和對象是有關係的。一般情況下,一個行爲就是在告訴我們如何去使用或者改變這個對象的某個屬性。比如說:人。人是一個對象,他有眼睛,鼻子,耳朵;他也有很多行爲,比如說吃,喝,聽等等。都是說的這個行爲如何去做一些和它的屬性相關的東西。

上面說的都是單個的對象,那麼多個對象之間會有什麼樣的聯繫呢?

打個比方,小明是個對象,小明的爸爸——大明也是一個對象。那麼這兩個對象之間就有了一些繼承的關係:小明繼承了爸爸的大眼睛屬性,卻沒有像爸爸一樣,長成一個大嘴巴。在這裏,大眼睛就是兩個對象間繼承過來的,而大嘴巴卻是小明爸獨有的。於是在兩個對象之間就有了一個繼承的關係,繼承的對象之間,有相同的屬性和方法,但是也可以有自己獨特的屬性和方法存在。

本篇內容總結一下就是下面這個圖了,寫的時候參考下大家的說法,不過還是寫上了自己舉的例子,有問題歡迎拍磚:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章