面向?qū)ο蟮娜齻€特點(diǎn)是什么
面向?qū)ο蠹夹g(shù)是目前流行的系統(tǒng)設(shè)計開發(fā)技術(shù),它包括面向?qū)ο蠓治龊兔嫦驅(qū)ο蟪绦蛟O(shè)計。面向?qū)ο蟪绦蛟O(shè)計技術(shù)的提出,主要是為了解決傳統(tǒng)程序設(shè)計方法——結(jié)構(gòu)化程序設(shè)計所不能解決的代碼重用問題。
面向?qū)ο蟮木幊谭椒ň哂兴膫€基本特征:
1.抽象:
抽象就是忽略一個主題中與當(dāng)前目標(biāo)無關(guān)的那些方面,以便更充分地注意與當(dāng)前目標(biāo)有關(guān)的方面。抽象并不打算了解全部問題,而只是選擇其中的一部分,暫時不用部分細(xì)節(jié)。比如,我們要設(shè)計一個學(xué)生成績管理系統(tǒng),考察學(xué)生這個對象時,我們只關(guān)心他的班級、學(xué)號、成績等,而不用去關(guān)心他的身高、體重這些信息。抽象包括兩個方面,一是過程抽象,二是數(shù)據(jù)抽象。過程抽象是指任何一個明確定義功能的操作都可被使用者看作單個的實體看待,盡管這個操作實際上可能由一系列更低級的操作來完成。數(shù)據(jù)抽象定義了數(shù)據(jù)類型和施加于該類型對象上的操作,并限定了對象的值只能通過使用這些操作修改和觀察。
2.繼承: 繼承是一種聯(lián)結(jié)類的層次模型,并且允許和鼓勵類的重用,它提供了一種明確表述共性的方法。對象的一個新類可以從現(xiàn)有的類中派生,這個過程稱為類繼承。新類繼承了原始類的特性,新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類)。派生類可以從它的基類那里繼承方法和實例變量,并且類可以修改或增加新的方法使之更適合特殊的需要。這也體現(xiàn)了大自然中一般與特殊的關(guān)系。繼承性很好的解決了軟件的可重用性問題。比如說,所有的Windows應(yīng)用程序都有一個窗口,它們可以看作都是從一個窗口類派生出來的。但是有的應(yīng)用程序用于文字處理,有的應(yīng)用程序用于繪圖,這是由于派生出了不同的子類,各個子類添加了不同的特性。
3.封裝:
封裝是面向?qū)ο蟮奶卣髦唬菍ο蠛皖惛拍畹闹饕匦浴7庋b是把過程和數(shù)據(jù)包圍起來,對數(shù)據(jù)的訪問只能通過已定義的界面。面向?qū)ο笥嬎闶加谶@個基本概念,即現(xiàn)實世界可以被描繪成一系列完全自治、封裝的對象,這些對象通過一個受保護(hù)的接口訪問其他對象。一旦定義了一個對象的特性,則有必要決定這些特性的可見性,即哪些特性對外部世界是可見的,哪些特性用于表示內(nèi)部狀態(tài)。在這個階段定義對象的接口。通常,應(yīng)禁止直接訪問一個對象的實際表示,而應(yīng)通過操作接口訪問對象,這稱為信息隱藏。事實上,信息隱藏是用戶對封裝性的認(rèn)識,封裝則為信息隱藏提供支持。封裝保證了模塊具有較好的獨(dú)立性,使得程序維護(hù)修改較為容易。對應(yīng)用程序的修改僅限于類的內(nèi)部,因而可以將應(yīng)用程序修改帶來的影響減少到最低限度。
4. 多態(tài)性:
多態(tài)性是指允許不同類的對象對同一消息作出響應(yīng)。比如同樣的加法,把兩個時間加在一起和把兩個整數(shù)加在一起肯定完全不同。又比如,同樣的選擇編輯-粘貼操作,在字處理程序和繪圖程序中有不同的效果。多態(tài)性包括參數(shù)化多態(tài)性和包含多態(tài)性。多態(tài)性語言具有靈活、抽象、行為共享、代碼共享的優(yōu)勢,很好的解決了應(yīng)用程序函數(shù)同名問題。
面向?qū)ο蟪绦蛟O(shè)計具有許多優(yōu)點(diǎn):
1、開發(fā)時間短,效率高,可靠性高,所開發(fā)的程序更強(qiáng)壯。由于面向?qū)ο缶幊痰目芍赜眯裕梢栽趹?yīng)用程序中大量采用成熟的類庫,從而縮短了開發(fā)時間。
2、應(yīng)用程序更易于維護(hù)、更新和升級。繼承和封裝使得應(yīng)用程序的修改帶來的影響更加局部化。
滿意請采納。
面向?qū)ο蟮娜筇卣髟趈ava中的體現(xiàn)?
一、封裝
首先,屬性能夠描述事物的特征,方法能夠描述事物的動作。封裝就是把同一類事物的共性(包括屬性和方法)歸到同一類中,方便使用。
封裝:封裝也稱信息隱藏,是指利用抽象數(shù)據(jù)類型把數(shù)據(jù)和基于數(shù)據(jù)的操作封裝起來,使其成為一個不可分割的整體,數(shù)據(jù)隱藏在抽象數(shù)據(jù)內(nèi)部,盡可能的隱藏數(shù)據(jù)細(xì)節(jié),只保留一些接口使其與外界發(fā)生聯(lián)系。也就是說用戶無需知道內(nèi)部的數(shù)據(jù)和方法的具體實現(xiàn)細(xì)節(jié),只需根據(jù)留在外部的接口進(jìn)行操作就行。
為了實現(xiàn)良好的封裝,我們通常將類的成員變量聲明為private,在通過public方法來對這個變量來訪問。對一個變量的操作,一般有讀取和賦值2個操作,,我們分別定義2個方法來實現(xiàn)這2個操作,一個是getXX(XX表示要訪問的成員變量的名字)用來讀取這個成員變量,另一個是setXX()用來對這個變量賦值。
二、繼承
1. Java繼承
Java繼承是面向?qū)ο蟮淖铒@著的一個特征。繼承是從已有的類中派生出新的類,新的類能吸收已有類的數(shù)據(jù)屬性和行為,并能擴(kuò)展新的能力。JAVA不支持多繼承,單繼承使JAVA的繼承關(guān)系很簡單,一個類只能有一個父類,易于管理程序,父類是子類的一般化,子類是父類的特化(具體化)
繼承所表達(dá)的就是一種對象類之間的相交關(guān)系,它使得某類對象可以繼承另外一類對象的數(shù)據(jù)成員和成員方法。若類B繼承類A,則屬于B的對象便具有類A的全部或部分性質(zhì)(數(shù)據(jù)屬性)和功能(操作),我們稱被繼承的類A為基類、父類或超類,而稱繼承類B為A的派生類或子類。
繼承避免了對一般類和特殊類之間共同特征進(jìn)行的重復(fù)描述。同時,通過繼承可以清晰地表達(dá)每一項共同特征所適應(yīng)的概念范圍——在一般類中定義的屬性和操作適應(yīng)于這個類本身以及它以下的每一層特殊類的全部對象。運(yùn)用繼承原則使得系統(tǒng)模型比較簡練也比較清晰。
三、多態(tài)
方法的重寫、重載與動態(tài)連接構(gòu)成多態(tài)性; Java之所以引入多態(tài)的概念,原因之一是它在類的繼承問題上和C++不同,后者允許多繼承,這確實給其帶來的非常強(qiáng)大的功能,但是復(fù)雜的繼承關(guān)系也給C++開發(fā)者帶來了更大的麻煩。
為了規(guī)避風(fēng)險,Java只允許單繼承,派生類與基類間有IS-A的關(guān)系(即“貓”is a “動物”)。這樣做雖然保證了繼承關(guān)系的簡單明了,但是勢必在功能上有很大的限制,所以,Java引入了多態(tài)性的概念以彌補(bǔ)這點(diǎn)的不足,此外,抽象類和接口也是解決單繼承規(guī)定限制的重要手段。同時,多態(tài)也是面向?qū)ο缶幊痰木杷凇?nbsp;
要理解多態(tài)性,首先要知道什么是“向上轉(zhuǎn)型”。
我定義了一個子類Cat,它繼承了Animal類,那么后者就是前者的父類。我可以通過
Cat c = new Cat(); 例化一個Cat的對象,這個不難理解。
但當(dāng)我這樣定義時: Animal a = new Cat();
父類引用只能調(diào)用父類中存在的方法和屬性,不能調(diào)用子類的擴(kuò)展部分;因為父類引用指向的是堆中子類對象繼承的父類;(但是如果強(qiáng)制把超類轉(zhuǎn)換成子類的話,就可以調(diào)用子類中新添加而超類沒有的方法了。)
同時,父類中的一個方法只有在父類中定義而在子類中沒有重寫的情況下,才可以被父類類型的引用調(diào)用;
在 java中 面向?qū)ο蟮娜齻€特點(diǎn)?
什么是面向?qū)ο缶幊贪。?/strong>1.抽象:
抽象就是忽略一個主題中與當(dāng)前目標(biāo)無關(guān)的那些方面,以便更充分地注意與當(dāng)前目標(biāo)有關(guān)的方面。抽象并不打算了解全部問題,而只是選擇其中的一部分,暫時不用部分細(xì)節(jié)。抽象包括兩個方面,一是過程抽象,二是數(shù)據(jù)抽象。
2.繼承:
繼承是一種聯(lián)結(jié)類的層次模型,并且允許和鼓勵類的重用,它提供了一種明確表述共性的方法。對象的一個新類可以從現(xiàn)有的類中派生,這個過程稱為類繼承。新類繼承了原始類的特性,新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類)。派生類可以從它的基類那里繼承方法和實例變量,并且類可以修改或增加新的方法使之更適合特殊的需要。
3.封裝:
封裝是把過程和數(shù)據(jù)包圍起來,對數(shù)據(jù)的訪問只能通過已定義的界面。面向?qū)ο笥嬎闶加谶@個基本概念,即現(xiàn)實世界可以被描繪成一系列完全自治、封裝的對象,這些對象通過一個受保護(hù)的接口訪問其他對象。
抽象 繼承 多態(tài)
封裝 繼承 多態(tài)
要按順序答啊
封裝 繼承 多態(tài) 回答者: alazyrabbit - 初入江湖 二級 好厲害!
封裝,繼承,多態(tài)
封裝 繼承 多態(tài)