JAVA面向對象之抽象

一、面向對象思想

1.抽象過程

所有編程語言都提供了一套抽象機制(對問題的抽象)

彙編語言是對底層機器的輕微抽象,CBASIC語言是對彙編語言的抽象。但是他們在解決問題時依然要求基於計算機的結構(面向過程),而不是基於問題來解決。所以程序員在解決問題時,經常需要建立機器模型<----->實際問題之間的關聯。

面向對象則通過提供問題中涉及到的元素(對象),使得程序員不再受限於任何特定類型的問題。因爲OOP的實質是:程序可以通過添加新類型的對象使自身適用於某個特定問題,所以,當閱讀問題解決方案的代碼時,實際上也是在閱讀問題的表述(各對象協調配合共同完成這個問題的過程,實際上就是在描述這個問題)。所以OOP是根據問題來描述問題,而不是通過運行解決方案的代碼來描述問題。

對象具有狀態(每個對象的內部數據),行爲(方法,方法的調用產生行爲)和標識(用來唯一的與其他對象區分開來,在內存中的對象,都有唯一地址來標識)。

面向對象的五個基本特性:

1.)萬物皆對象。對象也是一個變量,只不過是一個特殊的變量。他可以存儲數據,還可以被要求執行自身上的操作。我們可以將任意待解決問題的任意概念化構建(狗,貓,建築物)抽象爲程序中的對象

2.)序是對象的集合,他們通過發送消息來告知彼此所要做的。要想請求一個對象,就必須給該對象發送一條消息。消息實質上就是對某個特定對象的方法的調用請求。

3.)每個對象都有自己的存儲,這個存儲由其他對象所構成。可以通過創建包含現有對象包的形式來創建新類型的對象(對象)。所以程序中可以構建複雜的體系,同時可以將複雜性隱藏在對象簡單性的背後。

4.)每個對象都擁有其類型。即每個對象都是一個‘類’的實例。‘類’就是‘類型’的意思,每個類最重要的區別就是‘可以發送什麼樣的消息給他’(可以調用它的什麼方法)

5.)某一特定類型的所有對象都可以接受同樣的消息。舉個例子:“圓形”和“幾何形”,“圓形”同時也是“幾何形”,所以,一個“圓形”對象必然能接收所有發送給“幾何形”對象的消息。這意味着在“圓形”對象中可以編寫與“幾何形”交互並自動處理所有與“幾何形”性質相關的事物的代碼。

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