抽象過程
- 萬物皆對(duì)象
- 程序是對(duì)象的集合,它們通過發(fā)送消息來告知彼此所要做的。
- 每個(gè)對(duì)象都有自己的由其他對(duì)象所構(gòu)成的存儲(chǔ)
- 每個(gè)對(duì)象都擁有其類型
- 某一特定類型的所有對(duì)象都可以接收同樣的信息
對(duì)象具有狀態(tài)前塔,行為和標(biāo)識(shí)彻舰。則意味著每個(gè)對(duì)象都可以擁有內(nèi)部數(shù)據(jù)和方法棋凳,每一個(gè)對(duì)象在內(nèi)存中都有一個(gè)唯一的地址
每一個(gè)對(duì)象都有一個(gè)接口
所有的對(duì)象都是唯一的,但同時(shí)也是具有相同特征和行為的對(duì)象所歸屬的類的一部分鸿摇。
在程序執(zhí)行期間具有不同的狀態(tài)而其他方面都相似的對(duì)象會(huì)被分組到對(duì)象的類中,這就是關(guān)鍵字class的由來
每一個(gè)對(duì)象都屬于定義了特征和行為的某個(gè)特定的類劈猿。
因?yàn)轭惷枋隽司哂邢嗤匦裕〝?shù)據(jù)類型)和行為(功能)的對(duì)象集合拙吉,所以一個(gè)類實(shí)際上就是一個(gè)數(shù)據(jù)類型。
被隱藏的具體實(shí)現(xiàn)
- 權(quán)限控制的第一個(gè)存在原因就是讓客戶端程序員無法觸及他們不應(yīng)該觸及的部分揪荣。
- 權(quán)限控制的第二個(gè)存在的原因就是允許庫(kù)設(shè)計(jì)者可以改變內(nèi)部的工作方式而不用擔(dān)心會(huì)影響到客戶端程序員筷黔。
Java用三個(gè)關(guān)鍵字在類內(nèi)部設(shè)定邊界:public,private仗颈,protected佛舱。這些訪問指定詞決定了緊跟其后被定義的東西可以被推薦誰使用。
- public 表示緊隨其后的元素對(duì)于任何人都是可用的挨决。
- private 這個(gè)關(guān)鍵字表示除類型創(chuàng)建者和類型內(nèi)部方法之外的任何人都不能訪問的元素请祖,private就像你與客戶端程序員之間的一堵墻,如果有人試圖訪問private成員就會(huì)在編譯時(shí)得到錯(cuò)誤
- protected關(guān)鍵字和private作用相當(dāng)凰棉,差別僅在于繼承的類可以被訪問protected成員损拢,但是不能訪問private成員。
java還有一種默認(rèn)的訪問權(quán)限撒犀,當(dāng)沒有使用任何訪問權(quán)限詞福压,它將發(fā)揮作用掏秩。這種權(quán)限被稱為包訪問權(quán)限,在這種權(quán)限下荆姆,類可以訪問在同一個(gè)包中的其他類的成員蒙幻,但是在包之外如同指定了private一樣
復(fù)用具體的實(shí)現(xiàn)
最簡(jiǎn)單的復(fù)用 某個(gè)類的方式就是直接使用該類的一個(gè)對(duì)象,此外也可以將那個(gè)類的一個(gè)對(duì)象置于某個(gè)新的類中胆筒。我們稱其為“創(chuàng)建了一個(gè)成員對(duì)象”邮破。新的類可以是任意數(shù)量,任意類型的其他對(duì)象以任意可以實(shí)現(xiàn)新的類中想要的功能的方式組成仆救。因?yàn)槭窃谑褂矛F(xiàn)有的類合成新的類抒和。所以這種概念被稱為組合,如果組合是動(dòng)態(tài)發(fā)生的彤蔽,那么它通常被稱為聚合摧莽。
繼承
- 將繼承現(xiàn)有類型時(shí),也就創(chuàng)造了新的類型顿痪。這個(gè)新的類型不僅包括了現(xiàn)有類型的所有成員(盡管private成員被隱藏起來镊辕,并且不可以訪問),而且更重要的是它復(fù)制了基類的接口蚁袭。也就是說征懈,所有可以發(fā)給父類對(duì)象的消息同時(shí)也可以發(fā)給子類對(duì)象。由于通過發(fā)送給類的消息的類型可知類的類型揩悄,所以這也就意味著子類與父類具有相同的類型卖哎。
- 覆蓋:想要覆蓋某個(gè)方法,可以直接在子類中創(chuàng)建該方法的新定義即可