大家好,相信到目前為止很多朋友對(duì)于面向?qū)ο蟮奶卣骱兔嫦驅(qū)ο蟮奶卣髦皇遣惶恢朗鞘裁匆馑迹磕敲唇裉炀陀晌襾頌榇蠹曳窒砻嫦驅(qū)ο蟮奶卣飨嚓P(guān)的知識(shí)點(diǎn),文章篇幅可能較長,大家耐心閱讀,希望可以幫助到大家,下面一起來看看吧!
面向?qū)ο笾饕兴拇筇匦?/p>
1、抽象
忽略一個(gè)主題中與當(dāng)前目標(biāo)無關(guān)的東西,專注的注意與當(dāng)前目標(biāo)有關(guān)的方面。(就是把現(xiàn)實(shí)世界中的某一類東西,提取出來,用程序代碼表示,抽象出來的一般叫做類或者接口)。抽象并不打算了解全部問題,而是選擇其中的一部分,暫時(shí)不用部分細(xì)節(jié)。抽象包括兩個(gè)方面,一個(gè)數(shù)據(jù)抽象,而是過程抽象。
數(shù)據(jù)抽象--表示世界中一類事物的特征,就是對(duì)象的屬性。比如鳥有翅膀,羽毛等(類的屬性)
過程抽象--表示世界中一類事物的行為,就是對(duì)象的行為。比如鳥會(huì)飛,會(huì)叫(類的***)
2、封裝
封裝是面向?qū)ο蟮奶卣髦唬菍?duì)象和類概念的主要特性。封裝就是把過程和數(shù)據(jù)包圍起來,對(duì)數(shù)據(jù)的訪問只能通過已定義的界面。如私有變量,用set,get***獲取。
封裝保證了模塊具有較好的獨(dú)立性,使得程序維護(hù)修改較為容易。對(duì)應(yīng)用程序的修改僅限于類的內(nèi)部,因而可以將應(yīng)用程序修改帶來的影響減少到最低限度。
3、繼承
一種聯(lián)結(jié)類的層次模型,并且允許和鼓勵(lì)類的重用,提供一種明確表達(dá)共性的***。對(duì)象的一個(gè)新類可以從現(xiàn)有的類中派生,這個(gè)過程稱為類繼承。新類繼承了原始類的特性,新類稱為原始類的派生類(子類),原始類稱為新類的基類(父類)。派生類可以從它的父類哪里繼承***和實(shí)例變量,并且類可以修改或增加新的***使之更適合特殊的需要。因此可以說,繼承為了重用父類代碼,同時(shí)為實(shí)現(xiàn)多態(tài)性作準(zhǔn)備。
4、多態(tài)
多態(tài)是指允許不同類的對(duì)象對(duì)同一消息做出響應(yīng)。多態(tài)性包括參數(shù)化多態(tài)性和包含多態(tài)性。多態(tài)性語言具有靈活/抽象/行為共享/代碼共享的優(yōu)勢,很好的解決了應(yīng)用程序函數(shù)同名問題。總的來說,***的重寫,重載與動(dòng)態(tài)鏈接構(gòu)成多態(tài)性。java引入多態(tài)的概念原因之一就是彌補(bǔ)類的單繼承帶來的功能不足。
面向?qū)ο蟮木幊?**具有四個(gè)基本特征:
1.抽象:
抽象就是忽略一個(gè)主題中與當(dāng)前目標(biāo)無關(guān)的那些方面,以便更充分地注意與當(dāng)前目標(biāo)有關(guān)的方面。抽象并不打算了解全部問題,而只是選擇其中的一部分,暫時(shí)不用部分細(xì)節(jié)。比如,我們要設(shè)計(jì)一個(gè)學(xué)生成績管理系統(tǒng),考察學(xué)生這個(gè)對(duì)象時(shí),我們只關(guān)心他的班級(jí)、學(xué)號(hào)、成績等,而不用去關(guān)心他的身高、體重這些信息。抽象包括兩個(gè)方面,一是過程抽象,二是數(shù)據(jù)抽象。過程抽象是指任何一個(gè)明確定義功能的操作都可被使用者看作單個(gè)的實(shí)體看待,盡管這個(gè)操作實(shí)際上可能由一系列更低級(jí)的操作來完成。數(shù)據(jù)抽象定義了數(shù)據(jù)類型和施加于該類型對(duì)象上的操作,并限定了對(duì)象的值只能通過使用這些操作修改和觀察。
2.繼承:
繼承是一種聯(lián)結(jié)類的層次模型,并且允許和鼓勵(lì)類的重用,它提供了一種明確表述共性的***。對(duì)象的一個(gè)新類可以從現(xiàn)有的類中派生,這個(gè)過程稱為類繼承。新類繼承了原始類的特性,新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類)。派生類可以從它的基類那里繼承***和實(shí)例變量,并且類可以修改或增加新的***使之更適合特殊的需要。這也體現(xiàn)了大自然中一般與特殊的關(guān)系。繼承性很好的解決了軟件的可重用性問題。比如說,所有的Windows應(yīng)用程序都有一個(gè)窗口,它們可以看作都是從一個(gè)窗口類派生出來的。但是有的應(yīng)用程序用于文字處理,有的應(yīng)用程序用于繪圖,這是由于派生出了不同的子類,各個(gè)子類添加了不同的特性。
3.封裝:
封裝是面向?qū)ο蟮奶卣髦唬菍?duì)象和類概念的主要特性。封裝是把過程和數(shù)據(jù)包圍起來,對(duì)數(shù)據(jù)的訪問只能通過已定義的界面。面向?qū)ο笥?jì)算始于這個(gè)基本概念,即現(xiàn)實(shí)世界可以被描繪成一系列完全自治、封裝的對(duì)象,這些對(duì)象通過一個(gè)受保護(hù)的接口訪問其他對(duì)象。一旦定義了一個(gè)對(duì)象的特性,則有必要決定這些特性的可見性,即哪些特性對(duì)外部世界是可見的,哪些特性用于表示內(nèi)部狀態(tài)。在這個(gè)階段定義對(duì)象的接口。通常,應(yīng)禁止直接訪問一個(gè)對(duì)象的實(shí)際表示,而應(yīng)通過操作接口訪問對(duì)象,這稱為信息隱藏。事實(shí)上,信息隱藏是用戶對(duì)封裝性的認(rèn)識(shí),封裝則為信息隱藏提供支持。封裝保證了模塊具有較好的獨(dú)立性,使得程序維護(hù)修改較為容易。對(duì)應(yīng)用程序的修改僅限于類的內(nèi)部,因而可以將應(yīng)用程序修改帶來的影響減少到最低限度。
4.多態(tài)性:
多態(tài)性是指允許不同類的對(duì)象對(duì)同一消息作出響應(yīng)。比如同樣的加法,把兩個(gè)時(shí)間加在一起和把兩個(gè)整數(shù)加在一起肯定完全不同。又比如,同樣的選擇編輯-粘貼操作,在字處理程序和繪圖程序中有不同的效果。多態(tài)性包括參數(shù)化多態(tài)性和包含多態(tài)性。多態(tài)性語言具有靈活、抽象、行為共享、代碼共享的優(yōu)勢,很好的解決了應(yīng)用程序函數(shù)同名問題。
面向?qū)ο蟮娜齻€(gè)基本特征是:封裝、繼承、多態(tài)。
1、封裝是面向?qū)ο蟮奶卣髦唬菍?duì)象和類概念的主要特性。封裝,也就是把客觀事物封裝成抽象的類,并且類可以把自己的數(shù)據(jù)和***只讓可信的類或者對(duì)象操作,對(duì)不可信的進(jìn)行信息隱藏。
2、繼承:面向?qū)ο缶幊?OOP)語言的一個(gè)主要功能就是“繼承”。繼承是指這樣一種能力:它可以使用現(xiàn)有類的所有功能,并在無需重新編寫原來的類的情況下對(duì)這些功能進(jìn)行擴(kuò)展。
3、多態(tài):多態(tài)性(polymorphisn)是允許你將父對(duì)象設(shè)置成為和一個(gè)或更多的他的子對(duì)象相等的技術(shù),賦值之后,父對(duì)象就可以根據(jù)當(dāng)前賦值給它的子對(duì)象的特性以不同的方式運(yùn)作。簡單的說,就是一句話:允許將子類類型的指針賦值給父類類型的指針。
擴(kuò)展資料:
面向?qū)ο蟮奶卣鳎?/p>
(1)對(duì)象唯一性。
每個(gè)對(duì)象都有自身唯一的標(biāo)識(shí),通過這種標(biāo)識(shí),可找到相應(yīng)的對(duì)象。在對(duì)象的整個(gè)生命期中,它的標(biāo)識(shí)都不改變,不同的對(duì)象不能有相同的標(biāo)識(shí)。
(2)抽象性。
抽象性是指將具有一致的數(shù)據(jù)結(jié)構(gòu)(屬性)和行為(操作)的對(duì)象抽象成類。一個(gè)類就是這樣一種抽象,它反映了與應(yīng)用有關(guān)的重要性質(zhì),而忽略其他一些無關(guān)內(nèi)容。任何類的劃分都是主觀的,但必須與具體的應(yīng)用有關(guān)。
(3)繼承性。
繼承性是子類自動(dòng)共享父類數(shù)據(jù)結(jié)構(gòu)和***的機(jī)制,這是類之間的一種關(guān)系。在定義和實(shí)現(xiàn)一個(gè)類的時(shí)候,可以在一個(gè)已經(jīng)存在的類的基礎(chǔ)之上來進(jìn)行,把這個(gè)已經(jīng)存在的類所定義的內(nèi)容作為自己的內(nèi)容,并加入若干新的內(nèi)容。
(4)多態(tài)性(多形性)
多態(tài)性是指相同的操作或函數(shù)、過程可作用于多種類型的對(duì)象上并獲得不同的結(jié)果。不同的對(duì)象,收到同一消息可以產(chǎn)生不同的結(jié)果,這種現(xiàn)象稱為多態(tài)性。
參考資料來源:
百度百科-面向?qū)ο?/p>
面向?qū)ο蟮娜齻€(gè)基本特征是封裝、繼承、多態(tài)。
1、封裝:封裝就是隱藏對(duì)象的屬性和實(shí)現(xiàn)細(xì)節(jié),僅對(duì)外公開接口,控制在程序中屬性的讀和修改的訪問級(jí)別,將抽象得到的數(shù)據(jù)和行為(或功能)相結(jié)合,形成一個(gè)有機(jī)的整體,也就是將數(shù)據(jù)與操作數(shù)據(jù)的源代碼進(jìn)行有機(jī)的結(jié)合,形成“類”,其中數(shù)據(jù)和函數(shù)都是類的成員。
2、繼承:繼承是面向?qū)ο蟮幕咎卣髦唬^承機(jī)制允許創(chuàng)建分等級(jí)層次的類。繼承就是子類繼承父類的特征和行為,使得子類對(duì)象(實(shí)例)具有父類的實(shí)例域和***,或子類從父類繼承***,使得子類具有父類相同的行為。
3、多態(tài):多態(tài)同一個(gè)行為具有多個(gè)不同表現(xiàn)形式或形態(tài)的能力。是指一個(gè)類實(shí)例(對(duì)象)的相同***在不同情形有不同表現(xiàn)形式。多態(tài)機(jī)制使具有不同內(nèi)部結(jié)構(gòu)的對(duì)象可以共享相同的外部接口。這意味著,雖然針對(duì)不同對(duì)象的具體操作不同,但通過一個(gè)公共的類,它們(那些操作)可以通過相同的方式予以調(diào)用。
擴(kuò)展資料:
面向?qū)ο蟮奈宕蠡驹瓌t:
1、單一職責(zé)原則(SRP):一個(gè)類應(yīng)該有且只有一個(gè)去改變它的理由,這意味著一個(gè)類應(yīng)該只有一項(xiàng)工作;比如在職員類里,將工程師、銷售人員、銷售經(jīng)理這些情況都放在職員類里考慮,其結(jié)果將會(huì)非常混亂,在這個(gè)假設(shè)下,職員類里的每個(gè)***都要ifelse判斷是哪種情況,從類結(jié)構(gòu)上來說將會(huì)十分臃腫。
2、***封閉原則(OCP):對(duì)象或?qū)嶓w應(yīng)該對(duì)擴(kuò)展***,對(duì)修改封閉。
3、里氏替換原則(LSP):在對(duì)象x為類型T時(shí)q(x)成立,那么當(dāng)S是T的子類時(shí),對(duì)象y為類型S時(shí)q(y)也應(yīng)成立。(即對(duì)父類的調(diào)用同樣適用于子類)
4、依賴倒置原則(DIP):高層次的模塊不應(yīng)該依賴于低層次的模塊,他們都應(yīng)該依賴于抽象。具體實(shí)現(xiàn)應(yīng)該依賴于抽象,而不是抽象依賴于實(shí)現(xiàn)。
5、接口隔離原則(ISP):不應(yīng)強(qiáng)迫客戶端實(shí)現(xiàn)一個(gè)它用不上的接口,或是說客戶端不應(yīng)該被迫依賴它們不使用的***,使用多個(gè)專門的接口比使用單個(gè)接口要好的多
參考資料來源:
百度百科-面向?qū)ο?/p>
抽象:抽象是將一類對(duì)象的共同特征總結(jié)出來構(gòu)造類的過程,包括數(shù)據(jù)抽象和行為抽象兩方面。抽象只關(guān)注對(duì)象有哪些屬性和行為,并不關(guān)注這些行為的細(xì)節(jié)是什么。
-繼承:繼承是從已有類得到繼承信息創(chuàng)建新類的過程。提供繼承信息的類被稱為父類(超類、基類);得到繼承信息的類被稱為子類(派生類)。繼承讓變化中的軟件系統(tǒng)有了一定的延續(xù)性,同時(shí)繼承也是封裝程序中可變因素的重要手段(如果不能理解請(qǐng)閱讀閻宏博士的《Java與模式》或《設(shè)計(jì)模式精解》中關(guān)于橋梁模式的部分)。
-封裝:通常認(rèn)為封裝是把數(shù)據(jù)和操作數(shù)據(jù)的***綁定起來,對(duì)數(shù)據(jù)的訪問只能通過已定義的接口。面向?qū)ο蟮谋举|(zhì)就是將現(xiàn)實(shí)世界描繪成一系列完全自治、封閉的對(duì)象。我們?cè)陬愔芯帉懙?**就是對(duì)實(shí)現(xiàn)細(xì)節(jié)的一種封裝;我們編寫一個(gè)類就是對(duì)數(shù)據(jù)和數(shù)據(jù)操作的封裝。可以說,封裝就是隱藏一切可隱藏的東西,只向外界提供最簡單的編程接口(可以想想普通洗衣機(jī)和全自動(dòng)洗衣機(jī)的差別,明顯全自動(dòng)洗衣機(jī)封裝更好因此操作起來更簡單;我們現(xiàn)在使用的智能手機(jī)也是封裝得足夠好的,因?yàn)閹讉€(gè)按鍵就搞定了所有的事情)。
-多態(tài)性:多態(tài)性是指允許不同子類型的對(duì)象對(duì)同一消息作出不同的響應(yīng)。簡單的說就是用同樣的對(duì)象引用調(diào)用同樣的***但是做了不同的事情。多態(tài)性分為編譯時(shí)的多態(tài)性和運(yùn)行時(shí)的多態(tài)性。如果將對(duì)象的***視為對(duì)象向外界提供的服務(wù),那么運(yùn)行時(shí)的多態(tài)性可以解釋為:當(dāng)A系統(tǒng)訪問B系統(tǒng)提供的服務(wù)時(shí),B系統(tǒng)有多種提供服務(wù)的方式,但一切對(duì)A系統(tǒng)來說都是透明的(就像電動(dòng)剃須刀是A系統(tǒng),它的供電系統(tǒng)是B系統(tǒng),B系統(tǒng)可以使用電池供電或者用交流電,甚至還有可能是太陽能,A系統(tǒng)只會(huì)通過B類對(duì)象調(diào)用供電的***,但并不知道供電系統(tǒng)的底層實(shí)現(xiàn)是什么,究竟通過何種方式獲得了動(dòng)力)。***重載(overload)實(shí)現(xiàn)的是編譯時(shí)的多態(tài)性(也稱為前綁定),而***重寫(override)實(shí)現(xiàn)的是運(yùn)行時(shí)的多態(tài)性(也稱為后綁定)。運(yùn)行時(shí)的多態(tài)是面向?qū)ο笞罹璧臇|西,要實(shí)現(xiàn)多態(tài)需要做兩件事:1).***重寫(子類繼承父類并重寫父類中已有的或抽象的***);2).對(duì)象造型(用父類型引用引用子類型對(duì)象,這樣同樣的引用調(diào)用同樣的***就會(huì)根據(jù)子類對(duì)象的不同而表現(xiàn)出不同的行為)。
面向?qū)ο蟮娜筇卣魇浅橄蟆⒗^承、多態(tài)。
向?qū)ο笫且环N軟件開發(fā)***。面向?qū)ο蟮母拍詈蛻?yīng)用已超越了程序設(shè)計(jì)和軟件開發(fā),擴(kuò)展到如數(shù)據(jù)庫系統(tǒng)、交互式界面、應(yīng)用結(jié)構(gòu)、應(yīng)用平臺(tái)、人工智能等領(lǐng)域。
面向?qū)ο笫且环N對(duì)現(xiàn)實(shí)世界理解和抽象的***,是計(jì)算機(jī)編程技術(shù)發(fā)展到一定階段后的產(chǎn)物。
擴(kuò)展資料:
1、抽象性。
抽象是指強(qiáng)調(diào)實(shí)體的本質(zhì)、內(nèi)在的屬性。在系統(tǒng)開發(fā)中,抽象指的是在決定如何實(shí)現(xiàn)對(duì)象之前的對(duì)象的意義和行為。使用抽象可以盡可能避免過早考慮一些細(xì)節(jié)。
2、繼承性。
繼承性是子類自動(dòng)共享父類數(shù)據(jù)結(jié)構(gòu)和***的機(jī)制,這是類之間的一種關(guān)系。在定義和實(shí)現(xiàn)一個(gè)類的時(shí)候,可以在一個(gè)已經(jīng)存在的類的基礎(chǔ)之上來進(jìn)行,把這個(gè)已經(jīng)存在的類所定義的內(nèi)容作為自己的內(nèi)容,并加入若干新的內(nèi)容。
3、多態(tài)性
多態(tài)性是指相同的操作或函數(shù)、過程可作用于多種類型的對(duì)象上并獲得不同的結(jié)果。不同的對(duì)象,收到同一消息可以產(chǎn)生不同的結(jié)果,這種現(xiàn)象稱為多態(tài)性。
參考資料:百度百科-面向?qū)ο?/p>
關(guān)于面向?qū)ο蟮奶卣鞯膬?nèi)容到此結(jié)束,希望對(duì)大家有所幫助。