面向對象0--我所理解的對象

爲什麼需要面向對象?這到底有什麼優點?

這就是我所理解的程序語言的一個重要優點。相比於普通的計算器,難道計算機就只能作爲一個功能強大的函數處理器嗎?

面向對象,就是通過數據的抽象化,在程序中產生一個個對象和一個個實例。而這些對象和實例,更貼近生活,也更容易理解。

比如,我們現在有三個樂器,想存儲樂器的相關信息,比如價格,和相對應能彈奏的曲子。如圖:


如果不用對象的思路來考慮,也沒有問題。比如創立一個HashMap或者Array來存儲相關信息。

面向對象的話,很直觀,我們可以每一個樂器都創建一個類,這樣,通過構造器來生成具體的實例。


可以看到,創造對象或者說一個類,是一個非常自由的事情,可以根據程序的實際需要來進行編寫所需要的類。

通過類,可以對數據進行封裝,繼承,多態等相關操作,使得代碼複用更加清晰,使得代碼的可讀性大大提高。

比如下面這一段代碼:


我們可以清楚的看到通過構造器產生了Guitar類的一個實例。注意:Guitar guitar1只是一個“指針”,而真正產生實例的是: new Guitar()這個構造方法。

在這裏play()是實例方法,不能脫離具體的實例來產生。比如一段由Guitar產生的音樂,必須要有一個具體的Guitar來產生,否則無法完成這個動作。

不管是開發者還是讀者,都可以很直觀的知道guitar1.play()所表達的含義,而不需要了解更多細節。

而guitar1.play()在這裏,能夠清晰地展現play()與guitar1之間的關係。這個關係更能反應現實,反過來,面向對象更容易把現實中事物之間的狀態,行爲和關係,直觀地表達在程序之中。

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