物件導論 1 2 每個物件都有乙個介面

2021-09-28 13:55:54 字數 1503 閱讀 5971

1.2 每個物件都有乙個介面

亞里斯多德大概是弟弟乙個深入研究型別(type)的哲學家,他曾提出過魚類和鳥類這樣的概念。所有的物件 都是唯一的,但同時也是具有相同的特徵和行為的物件所屬的類的一部分。這種思想被直接應用於第乙個物件導向語言simula-67,它在程式中使用基本關鍵字class來引入新的型別。

(simula被認為是第乙個物件導向的程式語言。顧名思義,simula就是為模擬而設計的,並且該領域的需求為當今物件導向語言的許多功能提供了框架。simula 67被認為是最早的物件導向程式設計語言,它引入了所有後來物件導向程式設計語言所遵循的基礎概念:物件、類、繼承。simula(英譯:模擬語言)已被廣泛用於模擬vlsi設計,過程建模,協議,演算法以及排版,計算機圖形和教育等其他應用。)

在程式執行期間具有不同的狀態而其他方面都想死的物件會被分組到物件的類中,這就是關鍵字class的由來。建立抽象資料型別(類)是物件導向程式設計的基本概念之一。抽象資料型別的執行方式與內建(built-in)型別幾乎完全一致:你可以建立某一型別的變數(按照物件導向的說法,稱其為物件或例項),然後操作這些變數(稱其為傳送訊息或請求;傳送訊息,物件就知道要做什麼)。

同時,每個類的成員都有自身的狀態:每個賬戶都有不同的結餘金額,每個出納都有自己的姓名。因此,出納、客戶、賬戶、交易等都可以在電腦程式中被表示成唯一的實體。這些實體就是物件,每乙個物件都屬於定義了特性和行為的某個特定的類。

因為類描述了具有相同特性(資料元素)和行為(功能)的物件集合,所以乙個類實際上就是乙個資料型別,例如所有浮點型數字具有相同的特性和行為集合。二者的差異在於,程式設計師通過定義類來適應問題,而不再被迫只能使用現有的用來表示機器中的儲存單元的資料型別。可以根據需求,通過新增新的資料型別來擴充套件程式語言。程式設計系統欣然接受新的類,並且像對待內建型別一樣地照管它們和進行型別檢查。

物件導向方法並不是僅侷限於構件**程式。無論你是否贊成以下觀點,即任何程式都是你所設計的系統的一種**,物件導向技術的應用確實可以將大量的問題很容易的降解為乙個簡單的解決方案。

一旦類被建立,就可以隨心所欲地建立類的任意個物件,然後去操作它們,就像它們是存在於你的待求問題中的元素一樣。事實上,物件導向程式設計的挑戰之一,就是問題空間的元素和解空間的物件之間建立一對一的對映。

但是,怎樣才能獲得有用的物件呢?必須有某種方式產生物件的請求,是物件完成各種任務,如完成一筆交易、在螢幕上畫圖、開啟開關等等。每個物件都只能滿足某些請求,這些請求由物件的介面(inte***ce)所定義,決定介面的便是型別。

介面確定了對某一特定物件所能發出的請求。但是,在程式中必須又滿足這些請求的**。這些**與隱藏的資料一起構成了實現。從過程性程式設計的觀點來看,這並不太複雜。在型別中,每乙個可能的請求都有乙個方法與之相關聯,當物件傳送請求時,與之相關聯的方法就會被呼叫。此過程通常被概括為:向某個物件 「 傳送訊息 」(產生請求),這個物件便知道此訊息的目的,然後執行對應的**。

1 2 每個物件都有乙個介面

1 提出了用class 關鍵字來表示 型別 2 class由來 2.1 關鍵字class到由來 在程式執行期間具有不同的狀態而其他方面都相似的物件會被分組到物件的類中 2.2 建立抽象資料型別是物件導向設計的基本概念之一 2.3 建立某一型別的變數 在物件導向中稱該變數為 物件或者例項 2.4 每個...

每個技術人都有乙個技術 「夢「

最近一直都在接受入職培訓,各種團隊建設,人際溝通,各種感覺沒意思,我就想著手專案,直接上手,因為我有乙個技術夢,雖然這個夢很籠統,很抽象,但是最美的期待總是在你沒有任何意識的時候發生,堅持 積累 勤奮,這就是學習的真諦。1.01和0.99,到底相差多少。表面看起來只是相差了0.02,實在是微乎其微,...

給陣列物件中每個物件新增乙個字段

給陣列物件中每個物件新增乙個字段 在專案中從後端資料獲取完資料後,做出如下效果,但是返回的資料中沒有icon,給children中每個物件新增乙個icon欄位,this.treedata 0 children.foreach value,index 此外還有使用array map 方法 this.t...