還沒(méi)對(duì)象的舉個(gè)爪赘阀。啊哈,我已經(jīng)想象到了齊刷刷舉爪爪的樣子脑奠。
抱抱基公,不哭,今天就為大家介紹一波對(duì)象——面向?qū)ο蟆?/p>
面向?qū)ο蟮幕靖拍?/h1>
1.對(duì)象
客觀世界中的任何事物都可以稱為對(duì)象宋欺。復(fù)雜的對(duì)象可以由簡(jiǎn)單的對(duì)象組合而成轰豆。這個(gè)很好理解吧,就比如說(shuō)一個(gè)班級(jí)由很多學(xué)生構(gòu)成齿诞,每一個(gè)學(xué)生就是對(duì)象酸休,班級(jí)就是一個(gè)復(fù)雜的對(duì)象。除此之外祷杈,規(guī)則斑司、計(jì)劃、事件也是“對(duì)象”但汞。比如宿刮,開(kāi)車就可以抽象為一個(gè)對(duì)象。每個(gè)對(duì)象都具有一定的屬性(PS:屬性是用來(lái)描述對(duì)象的特征私蕾,對(duì)象的數(shù)據(jù)就保存在屬性中僵缺。),包括對(duì)象的狀態(tài)踩叭、特征等磕潮。例如,一個(gè)人的屬性包括姓名、性別揉抵、年齡亡容、職業(yè)等。對(duì)象也可以具有行為或方法冤今,如一個(gè)人吃飯睡覺(jué)等屬于他的行為闺兢。
2.類
? ? ? 類是指一組具有相同特性的對(duì)象的抽象,就是把對(duì)象的相同特征抽取出來(lái)戏罢,形成的一個(gè)關(guān)于這些對(duì)象集合的抽象模型屋谭。例如,每個(gè)人都有姓名龟糕、年齡桐磁、性別等屬性,都具有工作讲岁、勞動(dòng)我擂、睡覺(jué)等行為,可以將這些屬性和行為抽象成“人類”缓艳,每個(gè)人都是人類這個(gè)群體的一個(gè)對(duì)象校摩。類與對(duì)象關(guān)系密切。類是抽象的概念阶淘,對(duì)象是具體的實(shí)例衙吩。有類才能產(chǎn)生對(duì)象,對(duì)象具有所在類的全部屬性和行為溪窒。類的屬性是對(duì)象屬性的抽象坤塞,用數(shù)據(jù)結(jié)構(gòu)來(lái)描述。類的操作是對(duì)象行為的抽象澈蚌,用操作名和實(shí)現(xiàn)該操作的方法來(lái)描述摹芙。
面向?qū)ο蟮奶卣?/h2>
1.抽象
抽象就是抽取事物共同的、本質(zhì)性的特征惜浅。程序開(kāi)發(fā)方法所使用的抽象有兩類:一類是過(guò)程抽象瘫辩;另一類是數(shù)據(jù)抽象。過(guò)程抽象描述對(duì)象的共同行為特征或?qū)ο蟮?b>共同功能坛悉;數(shù)據(jù)抽象描述對(duì)象的屬性或狀態(tài)伐厌。對(duì)一個(gè)具體問(wèn)題進(jìn)行抽象分析 是通過(guò)類來(lái)描述和實(shí)現(xiàn)的。
2.封裝
封裝是面向?qū)ο蠓椒ǖ囊粋€(gè)重要原則裸影。封裝把數(shù)據(jù)和動(dòng)作集合在一起挣轨, 數(shù)據(jù)和動(dòng)作的邏輯屬性與它們的實(shí)現(xiàn)細(xì)節(jié)是分離的,實(shí)現(xiàn)了信息屏蔽轩猩。一個(gè)對(duì)象只知道自身的信息卷扮,對(duì)其他對(duì)象一無(wú)所知荡澎。如果一個(gè)對(duì)象需要另一個(gè)對(duì)象的信息,它必須向那個(gè)對(duì)象請(qǐng)求信息晤锹。在個(gè)對(duì)象內(nèi)部摩幔, 某些代碼和某些數(shù)據(jù)可以是私有的,不能被外界訪問(wèn)鞭铆。? 對(duì)象對(duì)內(nèi)部數(shù)據(jù)提供了不同級(jí)別的保護(hù)或衡,以防止程序中無(wú)關(guān)的部分意外改變或錯(cuò)誤地使用了對(duì)象的私有部分。
3.繼承
繼承是面向?qū)ο蟮囊环N屬性车遂,即一個(gè)類可以繼承另一個(gè)類的數(shù)據(jù)和方法封断。 如果類X繼承類Y,則X為Y的派生類(子類)舶担,Y為X的超類(父類)坡疼。例如,“汽車”是一類對(duì)象衣陶,“轎車”柄瑰、“卡車”等都繼承了“汽車”類的性質(zhì),因而是“汽車”的子類祖搓。
在這種分層體系中狱意,所處的層次越低,對(duì)象越專門化拯欧。下級(jí)的類會(huì)繼承其父類的所有行為和數(shù)據(jù)。有了繼承機(jī)制财骨,應(yīng)用程序就可以采用經(jīng)過(guò)測(cè)試的類镐作,從它派生出一個(gè)具有該應(yīng)用程序需要的屬性的類,然后向其中添加其他必要的屬性和方法隆箩。
4.多態(tài)性
多態(tài)性是指一種語(yǔ)言的繼承體系結(jié)構(gòu)中具有兩個(gè)同名方法该贾,且能夠根據(jù)對(duì)象應(yīng)用合適的方法的能力。同操作作用于不同的類的實(shí)例捌臊,將產(chǎn)生不同的執(zhí)行結(jié)果杨蛋,即不同類的對(duì)象收到相同的消息時(shí)得到不同的結(jié)果。面向?qū)ο蟮亩鄳B(tài)性方法的使用理澎,提高了程序設(shè)計(jì)的靈活性和效率逞力。
面向?qū)ο蟮奶攸c(diǎn)
與過(guò)程化程序設(shè)計(jì)相比,面向?qū)ο缶哂性S多明顯的優(yōu)點(diǎn)糠爬,主要體現(xiàn)在以下3個(gè)方面寇荧。
(1)可重用性。繼承是面向?qū)ο蠹夹g(shù)的一個(gè)重要機(jī)制执隧。用面向?qū)ο蠓椒ㄔO(shè)計(jì)的系統(tǒng)的基本對(duì)象類可以被其他新系統(tǒng)重用揩抡,從而能顯著提高工作效率户侥。
(2)可維護(hù)性。面向?qū)ο蠓椒ㄋ鶚?gòu)造的系統(tǒng)是建立在系統(tǒng)對(duì)象基礎(chǔ)上的峦嗤,結(jié)構(gòu)較穩(wěn)定蕊唐,可以在保持系統(tǒng)結(jié)構(gòu)不變的情況下進(jìn)行維護(hù)。
(3)表示方法的一致性烁设。面向?qū)ο蠓椒ㄒ笤趶?b>面向?qū)ο蠓治?/b>替梨、面向?qū)ο笤O(shè)計(jì)到面向?qū)ο髮?shí)現(xiàn)的整個(gè)開(kāi)發(fā)過(guò)程中,采用一致的表示方法署尤, 從而加強(qiáng)了分析耙替、設(shè)計(jì)和實(shí)現(xiàn)之間的內(nèi)在致性, 并且改善了用戶曹体、 分析員及程序員之間的信息交流俗扇。 此外,這種一致的表示方法使分析箕别、設(shè)計(jì)的結(jié)果很容易向編程轉(zhuǎn)換铜幽,從而有利于計(jì)算機(jī)輔助軟件工程的發(fā)展。
面向?qū)ο缶拖冉榻B到這里吧串稀,下次繼續(xù)除抛。碼了兩個(gè)小時(shí)字不容易,覺(jué)得不錯(cuò)就點(diǎn)贊加關(guān)注哦母截。
另外附上一份學(xué)習(xí)資料到忽,有需要的點(diǎn)擊資料自取。C/C++學(xué)習(xí)資料?
提取碼: hsh5