第一章 對象導論

編程語言起源與機器,是對機器的抽象,又是大腦的延伸,也是表達的媒體;因此,它的發展從對機器的簡單抽象,發到到現在越來越遠離機器,接近人類的表達;面向對象程序設計(OOP:object-oriented Programming)就是這個發展過成中的組成部分;

本章介紹包含開發方法概述在內的OOP基本概念;

1.1 抽象過程

編程就是將問題空間與解空間進行映射的過程;這個過程中抽象的對象及質量,決定了這個語音所能處理的問題復雜性;根據建模方式(抽象機制),可以把編程語言分成三類;

  • 對機器抽象的語言

如匯編對底層機器的輕微抽象,BASIC、C等在匯編的基礎上繼續抽象;這些語言的抽象對象是機器,當需要解決實際問題時,需要基于計算機的機構進行考慮,建立起實際問題模型與機器模型的關聯,建立這種映射困難且維護代價高昂;

  • 只針對問題建模的語言

這種語言提供固定的建模工具,在解決具體問題時,只需要對待解問題進行建模;如LISP,提供了“列表”做為建模工具,所有的問題都建模為列表;PROLOG則選擇“決策鏈”做為問題的建模工具;這些方式對他們要解決的特定問題比較有效,超出特定領域則顯力不從心

  • 利用對象進行建模的語言

以對象作為建模工具,將具體問題描述為“對象”,即不用考慮計算機結構,又具有通用性;對象就是對現實問題進行建模的工具,可以創建不同類型的對象,這些對象具有狀態(屬性)以及行為(方法);

1.2 每個對象都有一個接口

類:具有相同特征的對象的集合,可以理解為數據類型或者建模工具; OOP編程通過定義類來適應問題,通過建立對象對問題進行建模解決問題;
UML圖

1.3 每個對象都提供服務

進行程序設計時,最好的方法是將對象想象為服務提供者。通過創建一系列能提供理想服務的對象來解決問題。
有助于提供對象的內聚性:每個對象相對獨立服務單一,類與類之間的關系簡單明了

1.4 被隱藏的具體實現

類創建者通過隱藏實現,暴露給客戶端程序員(收集)必要的部分,使各自邊界清晰,減少可能產生的bug;
通過訪問控制,讓關系涉及的各方遵守各自的邊界;即,讓客戶端程序員無法觸及他們不應該觸及的部分,讓類創建者修改類內部工作方式而不影響外部;
四種訪問權限:

  • public
  • private
  • protect
  • 默認訪問權限

1.5 復用具體實現

復用是OOP最了不起的優點之一,復用某個類可以直接使用這個類的對象,或者將該類的對象置于一個新類中(創建一個成員對象,這種關系叫組合);
UML圖

1.6 繼承

UML圖
https://www.cnblogs.com/liuzhang/archive/2013/03/17/2964095.html

1.7 伴隨多態的可互換對象

后期綁定讓java具有多態的特性

1.8 單根繼承結構

所有類繼承自單一基類:Object
單根繼承在參數傳遞以及垃圾回收等方面有優勢

1.9 容器

容器區別于數組,可以動態擴充;
java中存在大量的容器類,原因是:1、不同的容器具有不同的接口;2、具有不同的執行效率;可以根據需要選擇

1.9.1 參數化類型

參數化類型也稱為泛型;JavaSE5之前,容器存儲Object,參數化類型解決了操作時需要轉型;

1.10 對象的創建和生命周期

區別于C++追求效率,對象的存儲空間及生命周期可以在編寫程序時確定;java在堆中動態地創建對象。這種方式,直到運行時才知道需要對少對象、對象的生命周期以及對象的類型;
java采用動態內存分配方式,需要創建對象時使用new來構建動態實例;采用垃圾回收機制控制對象的生命周期;

1.11 異常處理:處理錯誤

異常處理被置于語言之中,強制進行處理,增強代碼健壯性;異常處理不是面向對象的特征,在面向對象之前已經存在;

1.12 并發編程

并發編程需要注意的一個問題是資源共享的問題,可通過鎖來解決;

1.13 java與Internet

java的重要性,不僅僅是因為解決了傳統單機程序設計問題,同樣重要的是它解決了萬維網上的程序設計問題;

1.13.1 Web是什么

java applet 在客戶端編程中

1.14 總結

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,578評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,701評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 178,691評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,974評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,694評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,026評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,015評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,193評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,719評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,442評論 3 360
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,668評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,151評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,846評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,255評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,592評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,394評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,635評論 2 380

推薦閱讀更多精彩內容