好程序員 分享 Java 面試題: 面向?qū)ο蟮乃膫€基本特征 , 面向?qū)ο蠹夹g(shù)是目前流行的系統(tǒng)設(shè)計開發(fā)技術(shù),它包括面向?qū)ο蠓治龊兔嫦驅(qū)ο蟪绦蛟O(shè)計。面向?qū)ο蟪绦蛟O(shè)計技術(shù)的提出,主要是為了解決傳統(tǒng)程序設(shè)計方法 ——結(jié)構(gòu)化程序設(shè)計所不能解決的代碼重用問題。
在嘉陵等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供網(wǎng)站設(shè)計、成都做網(wǎng)站 網(wǎng)站設(shè)計制作按需求定制設(shè)計,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站建設(shè),網(wǎng)絡(luò)營銷推廣,外貿(mào)營銷網(wǎng)站建設(shè),嘉陵網(wǎng)站建設(shè)費用合理。
面向?qū)ο蟮木幊谭椒ň哂兴膫€基本特征:
1. 抽象:
抽象就是忽略一個主題中與當前目標無關(guān)的那些方面,以便更充分地注意與當前目標有關(guān)的方面。抽象并不打算了解全部問題,而只是選擇其中的一部分,暫時不用部分細節(jié)。比如,我們要設(shè)計一個學生成績管理系統(tǒng),考察學生這個對象時,我們只關(guān)心他的班級、學號、成績等,而不用去關(guān)心他的身高、體重這些信息。抽象包括兩個方面,一是過程抽象,二是數(shù)據(jù)抽象。過程抽象是指任何一個明確定義功能的操作都可被使用者看作單個的實體看待,盡管這個操作實際上可能由一系列更低級的操作來完成。數(shù)據(jù)抽象定義了數(shù)據(jù)類型和施加于該類型對象上的操作,并限定了對象的值只能通過使用這些操作修改和觀察。
2. 繼承:繼承是一種聯(lián)結(jié)類的層次模型,并且允許和鼓勵類的重用,它提供了一種明確表述共性的方法。對象的一個新類可以從現(xiàn)有的類中派生,這個過程稱為類繼承。新類繼承了原始類的特性,新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類)。派生類可以從它的基類那里繼承方法和實例變量,并且類可以修改或增加新的方法使之更適合特殊的需要。這也體現(xiàn)了大自然中一般與特殊的關(guān)系。繼承性很好的解決了軟件的可重用性問題。比如說,所有的 Windows 應用程序都有一個窗口,它們可以看作都是從一個窗口類派生出來的。但是有的應用程序用于文字處理,有的應用程序用于繪圖,這是由于派生出了不同的子類,各個子類添加了不同的特性。
3. 封裝:
封裝是面向?qū)ο蟮奶卣髦?,是對象和類概念的主要特性。封裝是把過程和數(shù)據(jù)包圍起來,對數(shù)據(jù)的訪問只能通過已定義的界面。面向?qū)ο笥嬎闶加谶@個基本概念,即現(xiàn)實世界可以被描繪成一系列完全自治、封裝的對象,這些對象通過一個受保護的接口訪問其他對象。一旦定義了一個對象的特性,則有必要決定這些特性的可見性,即哪些特性對外部世界是可見的,哪些特性用于表示內(nèi)部狀態(tài)。在這個階段定義對象的接口。通常,應禁止直接訪問一個對象的實際表示,而應通過操作接口訪問對象,這稱為信息隱藏。事實上,信息隱藏是用戶對封裝性的認識,封裝則為信息隱藏提供支持。封裝保證了模塊具有較好的獨立性,使得程序維護修改較為容易。對應用程序的修改僅限于類的內(nèi)部,因而可以將應用程序修改帶來的影響減少到最低限度。
4. 多態(tài)性:
多態(tài)性是指允許不同類的對象對同一消息作出響應。比如同樣的加法,把兩個時間加在一起和把兩個整數(shù)加在一起肯定完全不同。又比如,同樣的選擇編輯 - 粘貼操作,在字處理程序和繪圖程序中有不同的效果。多態(tài)性包括參數(shù)化多態(tài)性和包含多態(tài)性。多態(tài)性語言具有靈活、抽象、行為共享、代碼共享的優(yōu)勢,很好的解決了應用程序函數(shù)同名問題。
面向?qū)ο蟪绦蛟O(shè)計具有許多優(yōu)點:
1 、開發(fā)時間短,效率高,可靠性高,所開發(fā)的程序更強壯。由于面向?qū)ο缶幊痰目芍赜眯裕梢栽趹贸绦蛑写罅坎捎贸墒斓念悗?,從而縮短了開發(fā)時間。
2 、應用程序更易于維護、更新和升級。繼承和封裝使得應用程序的修改帶來的影響更加局部化。