一、物件導向思想
1.抽象過程
所有程式語言都提供了一套抽象機制(
對問題的抽象)。
組合語言是對底層機器的輕微抽象,c
,basic
語言是對組合語言的抽象。但是他們在解決問題時依然要求基於計算機的結構(面向過程),而不是基於問題來解決。所以程式設計師在解決問題時,經常需要建立機器模型<----->
實際問題之間的關聯。
物件導向則通過提供問題中涉及到的元素(物件),使得程式設計師不再受限於任何特定型別的問題。因為oop
的實質是:程式可以通過新增新型別的物件使自身適用於某個特定問題,所以,當閱讀問題解決方案的**時,實際上也是在閱讀問題的表述(各物件協調配合共同完成這個問題的過程,實際上就是在描述這個問題)。所以oop
是根據問題來描述問題,而不是通過執行解決方案的**來描述問題。
物件具有狀態(每個物件的內部資料),行為(方法,方法的呼叫產生行為)和標識(用來唯一的與其他物件區分開來,在記憶體中的物件,都有唯一位址來標識)。
物件導向的五個基本特性:
1.)萬物皆物件。物件也是乙個變數,只不過是乙個特殊的變數。他可以儲存資料,還可以被要求執行自身上的操作。我們可以將任意待解決問題的任意概念化構建(狗,貓,建築物)抽象為程式中的物件
2.)程式是物件的集合,他們通過傳送訊息來告知彼此所要做的。要想請求乙個物件,就必須給該物件傳送一條訊息。訊息實質上就是對某個特定物件的方法的呼叫請求。
3.)每個物件都有自己的儲存,這個儲存由其他物件所構成。可以通過建立包含現有物件包的形式來建立新型別的物件(物件)。所以程式中可以構建複雜的體系,同時可以將複雜性隱藏在物件簡單性的背後。
4.)每個物件都擁有其型別。即每個物件都是乙個『類』的例項。『類』就是『型別』的意思,每個類最重要的區別就是『可以傳送什麼樣的訊息給他』(可以呼叫它的什麼方法)
5.)某一特定型別的所有物件都可以接受同樣的訊息。舉個例子:「圓形」和「幾何形」,「圓形」同時也是「幾何形」,所以,乙個「圓形」物件必然能接收所有傳送給「幾何形」物件的訊息。這意味著在「圓形」物件中可以編寫與「幾何形」互動並自動處理所有與「幾何形」性質相關的事物的**。
java 物件導向 介面 抽象
乙個物件例項化過程 person p new person 1,jvm會讀取指定的路徑下的person.class檔案,並載入進記憶體,並會先載入person的父類 如果有直接的父類的情況下 2,在堆記憶體中的開闢空間,分配位址。3,並在物件空間中,對物件中的屬性進行預設初始化。4,呼叫對應的建構函...
Java語言 物件導向之抽象類
抽象類的定義 抽象類只是在普通類的基礎上擴充了一些抽象方法.用 abstract關鍵字來定義 抽象方法 指的是只宣告不實現的方法,即表示沒有方法體.所有抽象方法用abstract 關鍵字來定義.對應 如下 abstract class person get方法 public void setname...
java物件導向(抽象類)
抽象類 當多個類中出現相同功能,但是功能主體不同。這是可以進行向上抽取,這時,只抽取功能定義,而不抽取功能主體。抽象 就是模糊的意思.抽象類的特點 1,抽象方法一定在抽象類中。2,抽象方法和抽象類都必須被abstract關鍵字修飾。3,抽象類不可以用new建立物件,因為呼叫抽象方法沒意義。4,抽象類...