第一章《對象導(dǎo)論》

抽象過程

  • 概念
    ????所有編程語言都提供抽象機制沼瘫,人們所能解決問題的復(fù)雜性直接取決于抽象的類型和質(zhì)量。這里類型指的是抽象的是什么
  • 應(yīng)用歷程
    ????大致分為以下幾個
    • 匯編語言
      ????匯編語言是對底層機器的輕微抽象。
    • 所謂“命令式“語言
      ????對匯編語言的抽象稽煤,但他所做的抽象要求在解決問題是要基于計算機的結(jié)構(gòu)岳服,而不是基于要解決的問題的結(jié)構(gòu)來考慮。
      ????程序員需要建立起在“機器模型”和“實際待解問題的模型”之間的關(guān)聯(lián)吆视。
      ????解問題是指位于“解空間”內(nèi)典挑,對問題建模的地方,例如計算機啦吧。
      ????實際待解問題的模型是指位于“問題空間之內(nèi)您觉,也就是問題存在的地方,例如一項業(yè)務(wù)”授滓。
    • 早期編程語言
      ????只針對解問題建模琳水,例如LISP與APL,考慮世界的某些特定視圖般堆。PROLOG則將所有問題都轉(zhuǎn)換為決策鏈在孝。
    • 面向?qū)ο蠓绞骄幊陶Z言
      ????將問題空間之中的元素及其在解空間中的表示稱之為“對象”。
      ????面向?qū)ο蠓绞酵ㄟ^向程序員提供“表示問題空間中的元素的工具”而更近了一步淮摔。
      ????這種思想的實質(zhì)是:程序員可以通過添加新類型的對象使自身適用于某個特定給的問題私沮。
  • Smalltalk的五個基本特性
    1. 萬物皆為對象
      ????將對象視為奇特的變量,他可以存儲數(shù)據(jù)和橙,還可以在自身上執(zhí)行操作仔燕。理論上可以將帶求解問題的任何概念化構(gòu)建表示為對象。
    2. 程序是對象的集合魔招,他們通過發(fā)送消息來告知彼此所要做的
      ????要想請求一個對象晰搀,就必須對該對象發(fā)送一個消息“彀撸可以把消息想想為對某個特定對象的方法的調(diào)用請求外恕。
    3. 每個對象都有自己的有其他對象所構(gòu)成的存儲
      ????換句話說,可以通過創(chuàng)建包含現(xiàn)有對象的包的方式來創(chuàng)建新類型的對象。
    4. 每個對象都擁有其類型
      ???? 每個對象都是某個類(class)的一個實例(instance)鳞疲。 每個類最重要的區(qū)別于其他類的特性就是“可以發(fā)什么樣的消息給他”
    5. 某一特定累心過的所有對象都可以接收同樣的消息罪郊、
      ????“圓形”類型的對象同時也是“幾何形”類型的對象,所以一個“圓形”對象必定能接受發(fā)送給“幾何形”隊形對象的消息建丧。這就是OOP最強有力的一個概念之一“可替代性”排龄。
  • 總結(jié)
    ????對象具有狀態(tài)、行為和表示翎朱。
    ????這意味著每一個對象都可以擁有內(nèi)部數(shù)據(jù)(他們給出了該對象的狀態(tài))和方法(他們產(chǎn)生行為)橄维。并且每一個對象在內(nèi)存中都有一個唯一的地址。

每個對象都有一個接口

  • 亞里士多德提出類型的概念
    ????所有的對象個都是唯一的拴曲,但同時也是具有相同的特性和行為的對象所歸屬的類的一部分争舞。
  • 類與對象概述
    ????創(chuàng)建抽象數(shù)據(jù)類型(類)是面向?qū)ο蟪绦蛟O(shè)計的基本概念之一,類描述了具有相同特性(數(shù)據(jù)元素)和行為(功能)的對象集合澈灼,每一個對象都屬于定義了特性和行為的某個特定的類竞川。
    ????面向?qū)ο蠹夹g(shù)可以將大量的問題很容易的講解為一個簡單的解決方案叁熔,他所面臨的一個挑戰(zhàn)就是在問題空間的元素和解空間對象之間創(chuàng)建一對一的映射委乌。
    ????那么如何定義有用的對象呢?必須有某種方式產(chǎn)生對對象的請求荣回,是對象完成各種任務(wù)遭贸。而每個對象都只能滿足某些請求,這些請求有借口(interface)所定義心软,決定接口的便是類型壕吹。
    ????接口決定了對某一特定對象所能發(fā)出的請求。當(dāng)然也就必須有滿足這些請求的代碼删铃,這些代碼與隱藏的數(shù)據(jù)一起構(gòu)成了實現(xiàn)耳贬。當(dāng)想對象發(fā)送請求時,與之相關(guān)聯(lián)的實現(xiàn)就會被調(diào)用猎唁。這個過程為: 向某個對象“發(fā)送消息(產(chǎn)生請求)”咒劲,這個對象便知道此消息的目的,然后執(zhí)行對應(yīng)的程序代碼诫隅。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末缎患,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子阎肝,更是在濱河造成了極大的恐慌,老刑警劉巖肮街,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件风题,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機沛硅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進店門眼刃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人摇肌,你說我怎么就攤上這事擂红。” “怎么了围小?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵昵骤,是天一觀的道長。 經(jīng)常有香客問我肯适,道長变秦,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任框舔,我火速辦了婚禮蹦玫,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘刘绣。我一直安慰自己樱溉,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布纬凤。 她就那樣靜靜地躺著福贞,像睡著了一般。 火紅的嫁衣襯著肌膚如雪移斩。 梳的紋絲不亂的頭發(fā)上肚医,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天,我揣著相機與錄音向瓷,去河邊找鬼肠套。 笑死,一個胖子當(dāng)著我的面吹牛猖任,可吹牛的內(nèi)容都是我干的你稚。 我是一名探鬼主播,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼朱躺,長吁一口氣:“原來是場噩夢啊……” “哼刁赖!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起长搀,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤宇弛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后源请,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體枪芒,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡彻况,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了舅踪。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片纽甘。...
    茶點故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖抽碌,靈堂內(nèi)的尸體忽然破棺而出悍赢,到底是詐尸還是另有隱情,我是刑警寧澤货徙,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布左权,位于F島的核電站,受9級特大地震影響破婆,放射性物質(zhì)發(fā)生泄漏涮总。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一祷舀、第九天 我趴在偏房一處隱蔽的房頂上張望瀑梗。 院中可真熱鬧,春花似錦裳扯、人聲如沸抛丽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽亿鲜。三九已至,卻和暖如春冤吨,著一層夾襖步出監(jiān)牢的瞬間蒿柳,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工漩蟆, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留垒探,地道東北人。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓怠李,卻偏偏與公主長得像圾叼,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子捺癞,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,947評論 2 355

推薦閱讀更多精彩內(nèi)容