一些對(duì)象導(dǎo)論小概念

抽象過程

Alan Kay 曾經(jīng)總結(jié)了第一個(gè)成功的面向?qū)ο笳Z言执俩,同時(shí)也是Java所基于的語言之一的Smalltalk的五個(gè)基本特性,這些特性表現(xiàn)了一種純粹的面向?qū)ο蟪绦蛟O(shè)計(jì)方式:

1.萬物皆對(duì)象篱竭。

2.程序是對(duì)象的集合力图,它們通過發(fā)送消息來告知彼此所要做的。

3.每個(gè)對(duì)象都有自己的由其他對(duì)象所構(gòu)成的存儲(chǔ)掺逼。

4.每個(gè)對(duì)象都擁有類型.

5.某一特定類型的所有對(duì)象都可以接受同樣的消息吃媒。

被隱藏的具體實(shí)現(xiàn)

Java用三個(gè)關(guān)鍵字在累的內(nèi)部設(shè)定邊界: publicprivate, protected.

public: 緊隨其后的元素對(duì)任何人都是可以用的吕喘。

private: 除類型創(chuàng)建者和類型的內(nèi)部方法之外的任何人都不能訪問的元素赘那。 如果試圖訪問,就會(huì)在編譯時(shí)報(bào)錯(cuò)氯质。

protected: 于private相當(dāng)募舟,差別在于繼承的類可以訪問protected成員,但是不能訪問private成員闻察。

Java的默認(rèn)訪問權(quán)限拱礁,當(dāng)沒有使用任何access specifier時(shí),權(quán)限為包訪問權(quán)限辕漂,即同一個(gè)包的成員可以訪問呢灶,不同包的成員如同指定了private一樣。

復(fù)用具體實(shí)現(xiàn)

由于繼承在面向?qū)ο蟪绦蛟O(shè)計(jì)中如此重要钮热,所以被高度強(qiáng)調(diào)填抬,程序員就會(huì)有這樣的印象:處處都應(yīng)該使用繼承。 實(shí)際上隧期,在建立新類的時(shí)候飒责,應(yīng)該首先考慮組合,因?yàn)樗雍?jiǎn)單靈活仆潮。如果采用這種方式宏蛉,設(shè)計(jì)會(huì)變得更加清晰。一旦有了經(jīng)驗(yàn)之后性置,便能夠看出必須使用繼承的場(chǎng)合了拾并。

繼承

導(dǎo)出類與基類具有相同的類型。

有兩種方法可以使積累與導(dǎo)出類產(chǎn)生差異:

1. 直接在導(dǎo)出類中添加新方法鹏浅,這些方法并不是基類的一部分。(is-like-a super class)

2. 改變現(xiàn)有基類的方法的行為隐砸,即覆蓋(overriding) (is-a super class)

伴隨多態(tài)的可互換對(duì)象

在OOP中之碗,程序直到運(yùn)行時(shí)才能夠確定代碼的地址,所以當(dāng)消息發(fā)送到一個(gè)泛化對(duì)象時(shí)季希,必須采用其他的機(jī)制褪那。

“后期綁定”:當(dāng)向?qū)ο蟀l(fā)送消息時(shí)幽纷,被調(diào)用的代碼知道運(yùn)行時(shí)才能確定。編譯器確保被調(diào)用方法的存在并檢查博敬,但并不知道被執(zhí)行的確切代碼友浸。

為了執(zhí)行后期綁定,Java使用一小段特殊的代碼代替絕對(duì)地址的調(diào)用偏窝,動(dòng)態(tài)綁定在Java中是默認(rèn)行為(不同于c++需要添加virtual關(guān)鍵字)

轉(zhuǎn)型

把導(dǎo)出類看做他的基類的過程稱為向上轉(zhuǎn)型(upcasting)這個(gè)是安全的?

把基類看做導(dǎo)出類的過程稱為向下轉(zhuǎn)型, 除非確切的知道所要處理的對(duì)象的類型收恢,否則向下轉(zhuǎn)型幾乎是不安全的。

單根繼承結(jié)構(gòu)

在Java中(事實(shí)上包括除C++意外的所有OOP語言)囚枪,所有的類都繼承Object類派诬。

對(duì)象的創(chuàng)建和生命期

Java在堆(HEAP)的內(nèi)存池中動(dòng)態(tài)的創(chuàng)建對(duì)象劳淆。在這種方式中链沼,知道運(yùn)行時(shí)才知道需要多少對(duì)象,他們的生命期如何沛鸵,以及他們的具體類型是什么括勺。Java完全采用了動(dòng)態(tài)內(nèi)存分類方式(基本類型只是一種特例),每當(dāng)想創(chuàng)建一個(gè)對(duì)象時(shí)曲掰,就要使用new關(guān)鍵字來構(gòu)建對(duì)象的實(shí)例疾捍。

Java的垃圾回收器被設(shè)計(jì)用來處理內(nèi)存釋放問題。垃圾回收器知道對(duì)象什么時(shí)候不被再使用栏妖,并自動(dòng)釋放對(duì)象占的內(nèi)存乱豆,這一點(diǎn)同 “所有對(duì)象都繼承單根基類Object” 以及 “只能在堆上創(chuàng)建對(duì)象” 2個(gè)特性結(jié)合起來,是的Java比C++編程要簡(jiǎn)單的多吊趾。

異常處理

異常是一種對(duì)象宛裕,它從出錯(cuò)地點(diǎn)被“拋出”,并被專門設(shè)計(jì)用來處理特定類型錯(cuò)誤的異常處理器“捕獲”论泛。異常提供了一種從錯(cuò)誤狀態(tài)進(jìn)行可靠恢復(fù)的途徑】現(xiàn)在不再是只能退出程序,你可以進(jìn)行校正屁奏,并且恢復(fù)程序運(yùn)行岩榆。

Java一開始就內(nèi)置了異常處理,而且強(qiáng)制你使用它坟瓢。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末勇边,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子折联,更是在濱河造成了極大的恐慌粒褒,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件崭庸,死亡現(xiàn)場(chǎng)離奇詭異怀浆,居然都是意外死亡谊囚,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門执赡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來镰踏,“玉大人,你說我怎么就攤上這事沙合〉煳保” “怎么了?”我有些...
    開封第一講書人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵首懈,是天一觀的道長(zhǎng)绊率。 經(jīng)常有香客問我,道長(zhǎng)究履,這世上最難降的妖魔是什么滤否? 我笑而不...
    開封第一講書人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮最仑,結(jié)果婚禮上藐俺,老公的妹妹穿的比我還像新娘。我一直安慰自己泥彤,他們只是感情好欲芹,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著吟吝,像睡著了一般菱父。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上剑逃,一...
    開封第一講書人閱讀 51,365評(píng)論 1 302
  • 那天浙宜,我揣著相機(jī)與錄音,去河邊找鬼炕贵。 笑死梆奈,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的称开。 我是一名探鬼主播亩钟,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼鳖轰!你這毒婦竟也來了清酥?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤蕴侣,失蹤者是張志新(化名)和其女友劉穎焰轻,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體昆雀,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡辱志,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年蝠筑,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片揩懒。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡什乙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出已球,到底是詐尸還是另有隱情臣镣,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布智亮,位于F島的核電站忆某,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏阔蛉。R本人自食惡果不足惜弃舒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望馍忽。 院中可真熱鬧棒坏,春花似錦、人聲如沸遭笋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至谨湘,卻和暖如春蠢挡,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背褐缠。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人质和。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像稚字,于是被迫代替她去往敵國(guó)和親饲宿。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354

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