資源描述:
《《JAVA面向?qū)ο缶幊獭稰PT課件》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第3章面向?qū)ο缶幊?.1面向?qū)ο髥栴}求解的提出3.2面向?qū)ο蟮姆治雠c設(shè)計面向?qū)ο蟮姆治觯∣OA)面向?qū)ο蟮脑O(shè)計(OOD)3.3面向?qū)ο蟪绦蛟O(shè)計方法的優(yōu)點可重用性可擴展性可管理性3.4Java中類的定義和使用類聲明類體3.1面向?qū)ο髥栴}求解的提出程序設(shè)計語言的發(fā)展階段:第一代語言(1GL):二進制機器代碼(0101001)第二代語言(2GL):匯編語言(LowLevelLanguageLLL)(mov,add)第三代語言(3GL):高級語言(HLL)(以C語言為代表,過程式編程語言)第四代語言(4GL):面向?qū)ο笳Z言(OOP)非過程化/面向?qū)?/p>
2、象的編程語言O(shè)OP最大的優(yōu)點是具備了隱藏庫執(zhí)行的某些方面的功能,另一個重要優(yōu)點是過程與數(shù)據(jù)結(jié)構(gòu)聯(lián)合,這種數(shù)據(jù)屬性與方法的結(jié)合稱為類。最早的面向?qū)ο蟮木幊陶Z言是1966年推出的Simlula,它首次提出模擬人類的思維方式,把數(shù)據(jù)和相關(guān)的操作集成在一起的思想。20世紀(jì)80年代末期,以C++為代表的面向?qū)ο蟪绦蛟O(shè)計(OOP)才流行起來。其優(yōu)點為隱藏庫執(zhí)行的某些方面的功能,另一個優(yōu)點是過程與數(shù)據(jù)結(jié)構(gòu)聯(lián)合。Java是20世紀(jì)90年代新出現(xiàn)的面向?qū)ο蟮木幊陶Z言,它去除C++中非面向?qū)ο蟮膬?nèi)容,并實現(xiàn)一次編寫,多次使用的跨平臺特點,是面向?qū)ο箝_發(fā)工具中極
3、具潛力的成員之一。3.2面向?qū)ο蟮姆治雠c設(shè)計軟件工程的新途徑面向?qū)ο笞鳛橐环N思想及編程語言,為軟件開發(fā)的整個過程:從分析設(shè)計到實現(xiàn),提供了一個完整解決方案。面向?qū)ο罂胺Q是軟件發(fā)展取得的里程碑式的偉大成就。面向?qū)ο蠓椒ê喗閺?0年代后期開始,進行了面向?qū)ο蠓治觯∣OA)、面向?qū)ο笤O(shè)計(OOD)和面向?qū)ο蟪绦蛟O(shè)計(OOP)等新的系統(tǒng)開發(fā)方式模型的研究,在有些文獻中統(tǒng)稱為OO范型。圖1-1面向?qū)ο筌浖_發(fā)過程(軟件生命周期)3.3面向?qū)ο蟪绦蛟O(shè)計方法的優(yōu)點與傳統(tǒng)的方法相比,面向?qū)ο蟮膯栴}求解具有更好的可重用性,可擴展性和可管理性3.3.1可重用性
4、可重用性是面向?qū)ο筌浖_發(fā)的一個核心思路,面向?qū)ο蟪绦蛟O(shè)計的抽象、封裝、繼承、多態(tài)四大特點都圍繞這個核心服務(wù)。1.抽象: 抽象就是忽略一個主題中與當(dāng)前目標(biāo)無關(guān)的那些方面,以便更充分地注意與當(dāng)前目標(biāo)有關(guān)的方面。抽象并不打算了解全部問題,而只是選擇其中的一部分,暫時不用部分細節(jié)。比如,我們要設(shè)計一個學(xué)生成績管理系統(tǒng),考察學(xué)生這個對象時,我們只關(guān)心他的班級、學(xué)號、成績等,而不用去關(guān)心他的身高、體重這些信息。抽象包括兩個方面,一是過程抽象,二是數(shù)據(jù)抽象。過程抽象是指任何一個明確定義功能的操作都可被使用者看作單個的實體看待,盡管這個操作實際上可能
5、由一系列更低級的操作來完成。數(shù)據(jù)抽象定義了數(shù)據(jù)類型和施加于該類型對象上的操作,并限定了對象的值只能通過使用這些操作修改和觀察。2.繼承:為什么會有繼承?建立一個類后,發(fā)現(xiàn)另一個新的類有相同的特性,兩個選擇:重新定義一個新的類;在已有類的基礎(chǔ)上,修改(加加/減減)繼承是一種聯(lián)結(jié)類的層次模型,并且允許和鼓勵類的重用,它提供了一種明確表述共性的方法。新類繼承了原始類的特性,新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類)。繼承性很好的解決了軟件的可重用性問題。運輸工具航空運輸工具陸地運輸工具水上運輸工具人力驅(qū)動引擎驅(qū)動二輪四輪客運貨
6、運3.封裝: 封裝是面向?qū)ο蟮奶卣髦唬菍ο蠛皖惛拍畹闹饕匦?。封裝是把過程和數(shù)據(jù)包圍起來,對數(shù)據(jù)的訪問只能通過已定義的界面。面向?qū)ο笥嬎闶加谶@個基本概念,即現(xiàn)實世界可以被描繪成一系列完全自治、封裝的對象,這些對象通過一個受保護的接口訪問其他對象。一旦定義了一個對象的特性,則有必要決定這些特性的可見性,即哪些特性對外部世界是可見的,哪些特性用于表示內(nèi)部狀態(tài)。在這個階段定義對象的接口。通常,應(yīng)禁止直接訪問一個對象的實際表示,而應(yīng)通過操作接口訪問對象,這稱為信息隱藏。事實上,信息隱藏是用戶對封裝性的認(rèn)識,封裝則為信息隱藏提供支持。封裝保證
7、了模塊具有較好的獨立性,使得程序維護修改較為容易。對應(yīng)用程序的修改僅限于類的內(nèi)部,因而可以將應(yīng)用程序修改帶來的影響減少到最低限度。4.多態(tài)性: 多態(tài)性是指允許不同類的對象對同一消息作出響應(yīng)。多態(tài)性語言具有靈活、抽象、行為共享、代碼共享的優(yōu)勢,很好的解決了應(yīng)用程序函數(shù)同名問題。表現(xiàn)在繼承中?方法的重寫子類從父類繼承(extends擴展)而來多個子類同屬一個父類,所有子類有相同的父類繼承父類的方法在不同的子類中有不同的表現(xiàn)形式表現(xiàn)在用一個類中?方法的重載多態(tài)性在繼承中的表現(xiàn)3.3.2可擴展性3.3.3可管理性類的實現(xiàn)包括類聲明和類體3.4.
8、1類聲明classMankind{……}class定義類的關(guān)鍵字。(注意不要把class寫成Class)。Mankind類的名稱,習(xí)慣上,類名的首字母大寫,并且命名的規(guī)則符合標(biāo)識