1.2每個對象都有一個接口
第一個面向?qū)ο笳Z言Simula-67.他在程序中使用基本關(guān)鍵字class來引入新的類型。這個語言是為了開發(fā)諸如經(jīng)典的“銀行出納員問題”(bank teller problem)這樣的仿真程序而創(chuàng)建的。
class的由來:在程序執(zhí)行期間具有不同的狀態(tài)而其他方面都相似的對象會被分組到對象的類中。
創(chuàng)建抽象數(shù)據(jù)類型(類)是面向?qū)ο蟪绦蛟O(shè)計的基本概念之一。抽象數(shù)據(jù)類型的運行方式與內(nèi)置(built-in)類型幾乎完全一致。對象是那些實體,同時。每一個對象都屬于定義了特性和行為的某個特定的類。
所以,當(dāng)看到類型一詞時,可將其作為類來考慮。因為類描述了具有相同特性(數(shù)據(jù)元素)和行為(功能)的對象集合,程序媛可以通過定義類來適應(yīng)問題,而不再是被迫只能使用現(xiàn)有的用來表示機(jī)器中的存儲單元的數(shù)據(jù)類型。可以根據(jù)需求,通過添加新的數(shù)據(jù)類型來擴(kuò)展編程語言。
面向?qū)ο蠓椒ú⒉粌H局限于構(gòu)建仿真程序。任何程序都是你所設(shè)計的系統(tǒng)的一種仿真,面向?qū)ο蠹夹g(shù)的應(yīng)用確實可以將大量的問題很容易的降解為一個簡單的解決方案。
面向?qū)ο蟪绦蛟O(shè)計的挑戰(zhàn)之一就是:在問題空間的元素和解空間的對象之間創(chuàng)建一對一的映射。
怎樣才能獲取有用的對象?必須有某種方式產(chǎn)生對對象的請求,是對象完成各種任務(wù)。每個對象都只能滿足某些請求,這些請求由對象的接口(interface)所以定義。,決定接口的便是類型。
以電燈泡為例:
light lt=new light();
lt.on();
接口確定了對某一特定對象所能發(fā)出的請求。過程:向某個對象“發(fā)送消息”(產(chǎn)生請求),這個對象便知道此消息的目的,然后執(zhí)行對應(yīng)的程序代碼。