




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
面向?qū)ο筌浖_發(fā)概述第一頁,共五十七頁,編輯于2023年,星期二1.1面向?qū)ο髥栴}求解的提出軟件開發(fā)面臨的問題理論上如何解決復(fù)雜-簡化、縮短開發(fā)周期、易維護(hù)等語言方面機(jī)器語言-面向過程-面向?qū)ο竺嫦驅(qū)ο蟮某绦蛟O(shè)計(jì)結(jié)構(gòu)化程序設(shè)計(jì)模塊化數(shù)據(jù)抽象信息隱藏知識表示并行處理第二頁,共五十七頁,編輯于2023年,星期二優(yōu)點(diǎn)提高了軟件的生產(chǎn)力(可擴(kuò)充、可重用)減小了維護(hù)開銷(復(fù)雜性降低、標(biāo)準(zhǔn)件使用)更接近人的思維活動(dòng)面向?qū)ο蠓椒ǚ治觯∣OA
ObjectOrientedAnalysis)設(shè)計(jì)(OOD
ObjectOrientedDesigned)實(shí)現(xiàn)(OOP
ObjectOrientedProgramming)第三頁,共五十七頁,編輯于2023年,星期二1.2面向?qū)ο髥栴}求解概述面向過程以具體的解題過程為研究和實(shí)現(xiàn)的主體面向?qū)ο笠越鉀Q問題中所涉及到的各種對象為主體面向?qū)ο蟪绦蛟O(shè)計(jì)核心圍繞幾個(gè)概念抽象數(shù)據(jù)類型和類類的層次-子類繼承和多態(tài)第四頁,共五十七頁,編輯于2023年,星期二對象(Object)-面向?qū)ο蠹夹g(shù)的核心對象是現(xiàn)實(shí)世界的實(shí)體或概念在計(jì)算機(jī)邏輯中的抽象表示一個(gè)對象包含數(shù)據(jù)結(jié)構(gòu)及相關(guān)的操作例如:某臺電視機(jī),特指的某輛汽車黑盒用戶只關(guān)心能做什么?如汽車的功能:代步、運(yùn)輸?shù)鹊榷槐仃P(guān)心具體內(nèi)部原理,即如何做?面向?qū)ο蟮某绦蚴怯蓪ο蠼M成,這些對象應(yīng)具有以下特征:自治性:數(shù)據(jù)結(jié)構(gòu)和操作合為一體,且私有和公有分開,可以達(dá)到保護(hù)、減少干擾、降低復(fù)雜性、提高可靠性。自恰性:可以通過自身定義的操作來管理自己接口和消息機(jī)制:消息隱藏、通過接口體現(xiàn)功能.第五頁,共五十七頁,編輯于2023年,星期二抽象抽象的概念從特定的實(shí)體中抽取共性形成一般化概念的過程簡化了的描述,強(qiáng)調(diào)共性,忽略一部分細(xì)節(jié)描述——說明解釋——實(shí)現(xiàn)抽象是具有層次的,高層抽象視其低層抽象為它的一種實(shí)現(xiàn)是人們理解復(fù)雜現(xiàn)象和求解復(fù)雜問題中處理復(fù)雜性的重要工具面向?qū)ο蟮某橄笤頂?shù)據(jù)抽象模塊化信息隱藏行為共享進(jìn)化確定性第六頁,共五十七頁,編輯于2023年,星期二類類的概念創(chuàng)建對象的樣板包含外部接口和內(nèi)部算法以及數(shù)據(jù)結(jié)構(gòu)的形式簡單化:是同種對象的集合與抽象例:電腦是一個(gè)類(手提式、臺式、掌上電腦…)第七頁,共五十七頁,編輯于2023年,星期二實(shí)體與對象的關(guān)系實(shí)體——現(xiàn)實(shí)世界(電視機(jī)、汽車)對象——計(jì)算機(jī)世界(電視的屬性和功能)對象計(jì)算機(jī)世界
類現(xiàn)實(shí)世界實(shí)體抽象數(shù)據(jù)類映射計(jì)算機(jī)邏輯的實(shí)現(xiàn)實(shí)例化抽象抽象概念世界第八頁,共五十七頁,編輯于2023年,星期二面向?qū)ο蠹夹g(shù)的一個(gè)關(guān)鍵的設(shè)計(jì)思想讓計(jì)算機(jī)邏輯來模擬現(xiàn)實(shí)世界的物理存在讓計(jì)算機(jī)世界向現(xiàn)實(shí)世界靠攏——面向?qū)ο蠓粗尙F(xiàn)實(shí)向計(jì)算機(jī)靠攏——面向過程最終目的接近自然的思維模式更接近于現(xiàn)實(shí)問題的本來面目的方法、設(shè)計(jì)縮短開發(fā)周期易于維護(hù)第九頁,共五十七頁,編輯于2023年,星期二對客觀世界進(jìn)行抽象的例子1自行車:數(shù)據(jù)(屬性) 車架尺寸 車輪尺寸 牌子 材料名稱…
操作 變速 移動(dòng) 修理…第十頁,共五十七頁,編輯于2023年,星期二2窗口菜單: 數(shù)據(jù)(屬性): 顏色 樣式 標(biāo)題 位置…
操作: 選擇 增加 移動(dòng)…第十一頁,共五十七頁,編輯于2023年,星期二1.3對象的屬性1.3.1對象的屬性對象的狀態(tài)(又稱靜態(tài)屬性)對象內(nèi)部所包含的各種信息,即變量。行為又稱操作或方法(動(dòng)態(tài)屬性)其作用是設(shè)置或改變對象的狀態(tài)方法(行為)和狀態(tài)的關(guān)系狀態(tài)是否開啟所在頻道行為:打開行為:改變頻道以電視機(jī)為例第十二頁,共五十七頁,編輯于2023年,星期二
方法將對象的內(nèi)部變量(狀態(tài))包裹、封裝、保護(hù)只能通過方法改變狀態(tài)方法是對象與外界交互的接口面向?qū)ο蟮膯栴}求解的最終目的最終形成一個(gè)廣泛聯(lián)系的、可理解的、可擴(kuò)充的、可維護(hù)的更接近問題原形的動(dòng)態(tài)對象模型系統(tǒng)第十三頁,共五十七頁,編輯于2023年,星期二對象、實(shí)體與類關(guān)系對象:現(xiàn)實(shí)世界中某個(gè)具體的物理實(shí)體在計(jì)算 機(jī)邏輯中的映射和體現(xiàn)類:是一種抽象的數(shù)據(jù)類型,是同種對象的集合與抽象。屬于類的某一個(gè)對象則被稱為類的一個(gè)實(shí)例鴨子:類那只紅嘴巴的鴨子:對象手表:類老王的手表:對象第十四頁,共五十七頁,編輯于2023年,星期二1.3.2對象的關(guān)系包含當(dāng)對象A是對象B的屬性時(shí),稱對象B包含對象A。例:電視機(jī)——顯像管,汽車——發(fā)動(dòng)機(jī)繼承當(dāng)對象A是對象B的特例時(shí),稱對象A繼承了對象B。例:小汽車——(小轎車、小貨車、小客車…)學(xué)生——(小學(xué)生、中學(xué)生、大學(xué)生…)父——公共關(guān)系集合子——除公共以外,有屬于自己的特殊屬性關(guān)聯(lián)當(dāng)對象A的引用是對象B的屬性時(shí),稱對象A、B為關(guān)聯(lián)關(guān)系對象的引用:可以獲取或操作該對象的途徑(線索)例:汽車對象中包含廠商對象的線索(廠名、址、電話…)第十五頁,共五十七頁,編輯于2023年,星期二注意:包含和繼承的區(qū)別包含:是整體中不可缺少的一個(gè)部分繼承:是在已有之上細(xì)化(具體化、擴(kuò)充),是一般與特殊的結(jié)構(gòu)關(guān)系.包含和關(guān)聯(lián)的區(qū)別包含:含有實(shí)體關(guān)聯(lián):不含實(shí)體,只包含與實(shí)體相關(guān)的線索第十六頁,共五十七頁,編輯于2023年,星期二1.4面向?qū)ο蟮能浖_發(fā)過程——需求分析(需求模型:對象模型,動(dòng)態(tài)行為模型,用戶界面模型)——設(shè)計(jì)(概要設(shè)計(jì),詳細(xì)設(shè)計(jì))——實(shí)現(xiàn)(選擇語言,編碼,集成,測試)第十七頁,共五十七頁,編輯于2023年,星期二1.4.1面向?qū)ο蟮姆治鋈蝿?wù):用戶需求OOA模型的設(shè)計(jì)和表達(dá)方法(五個(gè)層次)對象——類層現(xiàn)實(shí)世界到計(jì)算機(jī)世界(對象、類)的抽象靜態(tài)屬性層設(shè)計(jì)對象的狀態(tài)及各對象間的約束關(guān)系服務(wù)層(方法層)定義對象和類的動(dòng)態(tài)屬性及對象之間的消息通信結(jié)構(gòu)層定義系統(tǒng)中的所有對象和類之間的層次結(jié)構(gòu)關(guān)系主題層劃分子系統(tǒng)第十八頁,共五十七頁,編輯于2023年,星期二1.4.2面向?qū)ο蟮脑O(shè)計(jì)OOD模型劃分為四個(gè)部分問題邏輯界面管理負(fù)責(zé)整個(gè)系統(tǒng)的人-機(jī)界面設(shè)計(jì)任務(wù)管理負(fù)責(zé)處理并行操作之類的系統(tǒng)資源管理功能的工作數(shù)據(jù)管理負(fù)責(zé)設(shè)計(jì)系統(tǒng)與數(shù)據(jù)庫的接口分為四個(gè)部分的優(yōu)點(diǎn)技術(shù)實(shí)現(xiàn)上的透明性可重用性大大提高維護(hù)更容易第十九頁,共五十七頁,編輯于2023年,星期二問題邏輯部分的任務(wù)對最初的OOA模型進(jìn)一步細(xì)化分析、設(shè)計(jì)和驗(yàn)證細(xì)化分析包括對類靜態(tài)數(shù)據(jù)的確定對類方法的參數(shù)、返值、功能實(shí)現(xiàn)的明確規(guī)定細(xì)化驗(yàn)證包括各對象類公式間的相容性和一致性各個(gè)類間、類內(nèi)成員的訪問權(quán)限的嚴(yán)格合理性對象類的功能是否符合用戶需求詳細(xì)設(shè)計(jì)原則充分利用已存在的,可獲得的對象類或部件分析哪些類或哪些功能是可重用的,交專人優(yōu)先開發(fā)大型項(xiàng)目設(shè)專人管理可重用資源,組成類庫或其它可重用結(jié)構(gòu),充分、合理地利用資源第二十頁,共五十七頁,編輯于2023年,星期二1.4.3面向?qū)ο蟮膶?shí)現(xiàn)——編碼階段選擇語言用語言編碼實(shí)現(xiàn)詳細(xì)設(shè)計(jì)階段所得公式、圖表、說明和規(guī)劃等對軟件系統(tǒng)各對象類的詳盡描述將類代碼模塊根據(jù)類的相互關(guān)系集成(層次)按測試樣例進(jìn)行模塊及系統(tǒng)測試,測試可與編碼同步完成。第二十一頁,共五十七頁,編輯于2023年,星期二1.5面向?qū)ο蟪绦蛟O(shè)計(jì)的特點(diǎn)抽象-簡化描述、抽取共性封裝所有對象內(nèi)部軟件范圍具有清晰的邊界描述該對象與其它對象如何相互作用的接口受保護(hù)的內(nèi)部實(shí)現(xiàn)繼承-層次關(guān)系、創(chuàng)建新類的一種方法多態(tài)不同對象對同一種信息可以按照對象本身的性質(zhì)加以回應(yīng)動(dòng)態(tài)聯(lián)編-運(yùn)行時(shí)真正鎖定需要的對象第二十二頁,共五十七頁,編輯于2023年,星期二1.6面向?qū)ο蟪绦蛟O(shè)計(jì)方法的優(yōu)點(diǎn)可重用性面向?qū)ο筌浖_發(fā)的核心思路可擴(kuò)展性(快速原型法)從簡單起,不斷補(bǔ)充、延伸可管理性由于封裝,便于管理第二十三頁,共五十七頁,編輯于2023年,星期二1.7第一章小結(jié)面向?qū)ο髥栴}的提出和求解的基本過程基本概念對象、類、實(shí)體及其相互關(guān)系對象的屬性(狀態(tài)和行為)對象間的關(guān)系包含:部分-整體繼承:一般-特殊關(guān)聯(lián):相關(guān)的一條線索軟件工程開發(fā)方法(OOA-OOD-OOP)面向?qū)ο蟪绦蛟O(shè)計(jì)的特點(diǎn)(抽象、封裝、繼承、多態(tài)、動(dòng)聯(lián))面向?qū)ο蟪绦蛟O(shè)計(jì)方法的優(yōu)點(diǎn)(可重用、擴(kuò)展、管理)第二十四頁,共五十七頁,編輯于2023年,星期二作業(yè):
1、按照數(shù)據(jù)抽象原理,體現(xiàn)面向?qū)ο蟮脑O(shè)計(jì)要求,給出幾何圖形(如:點(diǎn)、線、多邊形、圓等)的繼承關(guān)系層次圖。
2、給出對象計(jì)算機(jī)、對象“聯(lián)想”牌計(jì)算機(jī)、對象CPU及對象計(jì)算機(jī)商家(或廠家)之間的關(guān)系。第二十五頁,共五十七頁,編輯于2023年,星期二一、Java的發(fā)展歷史1991,Sun成立由JamesGosling領(lǐng)導(dǎo)的Green小組,開發(fā)了Oak語言;1995.1,JamesGosling和Naughton完成Oak新版與第一個(gè)基于Oak的應(yīng)用程序WebRunner。OakJavaWebRunnerHotJava,支持Java的第二代瀏覽器1998年底,發(fā)布J2SDK。目前最新版本是JDK7JamesGosling第二十六頁,共五十七頁,編輯于2023年,星期二Java2平臺Java2PlatformStandardEdition—J2SEJava2PlatformEnterpriseEdition—J2EEJava2PlatformMicroEdition—J2ME第二十七頁,共五十七頁,編輯于2023年,星期二Java開發(fā)平臺第二十八頁,共五十七頁,編輯于2023年,星期二Java語言Java是一種編程語言。Java又是一種平臺。第二十九頁,共五十七頁,編輯于2023年,星期二Java編程語言第三十頁,共五十七頁,編輯于2023年,星期二Java平臺第三十一頁,共五十七頁,編輯于2023年,星期二Java的特征Sun在JAVA“白皮書”中指出:
JAVA是一種“簡單、面向?qū)ο?、分布式、解釋型、健壯、安全、體系結(jié)構(gòu)中立、可移植、高性能和動(dòng)態(tài)”的編程語言
極盡贊美之辭也不為過!
第三十二頁,共五十七頁,編輯于2023年,星期二二、Java的語法機(jī)制概述與C++一致的語法機(jī)制:(同)數(shù)據(jù)類型、表達(dá)式、程序流控制、結(jié)構(gòu)化異常處理等;與C++不同的語法機(jī)制“(異)
類、接口(Interface)、程序包(Package)、
自動(dòng)內(nèi)存回收以及多線程。第三十三頁,共五十七頁,編輯于2023年,星期二Java與C++不同的語法機(jī)制類:最重要、最基本的語法,類的定義與繼承與C++類似,主要區(qū)別:Java不允許多重繼承,多重繼承必須通過接口實(shí)現(xiàn)。Java引進(jìn)了abstract和final修飾詞。帶abstract的類稱為抽象類,只能作為父類使用,不能直接產(chǎn)生實(shí)例對象。帶final的類不能用作父類被繼承,帶final的屬性在定義式必須賦初值并稱為常量,帶final的方法將禁止子類(Overriding)。第三十四頁,共五十七頁,編輯于2023年,星期二Java與C++不同的語法機(jī)制接口是一種抽象類,其中只能出現(xiàn)靜態(tài)常量或抽象方法定義。主要目的是實(shí)現(xiàn)多重繼承功能,避免C++在多重繼承語義上的復(fù)雜性。一個(gè)JAVA類可以實(shí)現(xiàn)(繼承)多個(gè)接口。第三十五頁,共五十七頁,編輯于2023年,星期二Java與C++不同的語法機(jī)制程序包(package)是一些相關(guān)類或接口的集合。
JAVA提供包括可重用類標(biāo)準(zhǔn)程序包,用戶可自定義程序包。通過import語句將程序包引入應(yīng)用程序。第三十六頁,共五十七頁,編輯于2023年,星期二Java與C++不同的語法機(jī)制自動(dòng)內(nèi)存回收
JAVA取消了指針類型,所有動(dòng)態(tài)內(nèi)存請求均通過new運(yùn)算符,并且得到的不是指針而是引用。系統(tǒng)進(jìn)行內(nèi)存回收。多線程依賴操作系統(tǒng)提供的線程管理的API:與平臺綁定語言級支持多線程:忽略操作系統(tǒng)多線程機(jī)制的差異,軟件具有更好的可靠性和可移植性。第三十七頁,共五十七頁,編輯于2023年,星期二三、JAVA運(yùn)行系統(tǒng)Java運(yùn)行系統(tǒng)的構(gòu)成
類裝配器
字節(jié)碼驗(yàn)證器
解釋器
代碼生成器
運(yùn)行支持庫Java運(yùn)行環(huán)境的種類JAVAApplication--JAVA解釋器JAVAApplet--JAVA兼容的Web瀏覽器第三十八頁,共五十七頁,編輯于2023年,星期二JAVA程序運(yùn)行過程Hello.javaJavacHello.javaHello.class網(wǎng)絡(luò)類裝配器字節(jié)碼驗(yàn)證器解釋器代碼生成器運(yùn)行支持庫本地系統(tǒng)編譯運(yùn)行第三十九頁,共五十七頁,編輯于2023年,星期二四、JAVA常用開發(fā)工具JDK(Sun)命令行EclipseJCreator(XINOX)NetBeans(Sun) JavaStudioCreator(Sun)JBuilder(Borland)VisualAgeforJava(IBM)第四十頁,共五十七頁,編輯于2023年,星期二4.1JDK1.6的獲取與安裝從/javase/downloads/index.jsp下載運(yùn)行JDK1.7中的安裝程序改變環(huán)境變量:右鍵點(diǎn)擊我的電腦->屬性->高級->環(huán)境變量
PATH=%PATH%;c:\java\bin;CLASSPATH=.;c:\java\lib第四十一頁,共五十七頁,編輯于2023年,星期二4.1JDK安裝目錄結(jié)構(gòu)簡介1.軟件安裝的根目錄包含版權(quán)、許可以及README文件。還包括:src.zip構(gòu)成Java平臺核心API的所有類的源文件的歸檔。2.bin目錄包含JDK開發(fā)工具的可執(zhí)行文件。3.lib目錄開發(fā)工具使用的歸檔包文件。4.jre目錄
Java運(yùn)行時(shí)環(huán)境的根目錄。其子目錄\jre\bin中包含Java平臺使用的工具和庫的可執(zhí)行文件及DLL。5.demo目錄:含有資源代碼的程序示例第四十二頁,共五十七頁,編輯于2023年,星期二4.1JDK目錄結(jié)構(gòu)中bin目錄下主要開發(fā)工具的
可執(zhí)行文件簡介(1)javac:Java語言的編譯器。(2)java:Java應(yīng)用程序執(zhí)行引擎,類名后面可帶一個(gè)或多個(gè)字符串參數(shù)。(3)javadoc:API生成器,對當(dāng)前類生成HTML格式的API文檔。(4)appletviewer:小應(yīng)用程序?yàn)g覽器。(5)jar:JavaArchive文件歸檔工具,用它可以把類文件以及其他格式的文件進(jìn)行壓縮,以便于程序中引入以及網(wǎng)絡(luò)傳輸?shù)?。?)jdb:Java調(diào)試工具Debugger。第四十三頁,共五十七頁,編輯于2023年,星期二Java的API(ApplicationProgramInterface)Java的API文檔是Java程序開發(fā)的最好幫手,從/javase/downloads/index.jsp下載;它提供了所有有關(guān)API類庫的信息及鏈接,API文檔內(nèi)容主要包括:類層次結(jié)構(gòu)、類、成員變量表、構(gòu)造函數(shù)表、方法表、變量詳細(xì)說明表及每一個(gè)變量使用目的的詳細(xì)描述、構(gòu)造方法的詳細(xì)說明等。第四十四頁,共五十七頁,編輯于2023年,星期二Java程序中的類的定義的語法形式修飾符class類名[extend父類名]{type類變量1;
type類變量2;
……
修飾符type類方法1(參數(shù)列表){type局部變量;方法體
}
修飾符type類方法2(參數(shù)列表){type局部變量;方法體
}……}成員變量成員方法第四十五頁,共五十七頁,編輯于2023年,星期二Java應(yīng)用程序舉例//HelloWorldApp.java:publicclassHelloWorldApp{ publicstaticvoidmain(Stringargs[]){ System.out.println(“HelloWorld!”); }}第四十六頁,共五十七頁,編輯于2023年,星期二Java程序編寫、編譯過程
main聲明--J
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 南京市政道路路面施工方案
- 衛(wèi)生間橡皮金防水施工方案
- 退股協(xié)議方案
- 上承式鋼箱拱橋施工方案
- 蒸汽管道下穿鐵路施工方案
- 水庫堤壩加固工程施工方案
- 鐵路變配電所維修施工方案
- 構(gòu)建健全的外商投資服務(wù)體系的策略
- 發(fā)展中醫(yī)藥服務(wù)與傳統(tǒng)醫(yī)療模式的策略及實(shí)施路徑
- 低空經(jīng)濟(jì)的市場前景
- 2023北京高三一模語文匯編:非連續(xù)性文本閱讀
- 初中物理核心素養(yǎng)培養(yǎng)
- 從吶喊看魯迅筆下的女性角色
- 介紹錢三強(qiáng)的
- 農(nóng)業(yè)資源與環(huán)境經(jīng)濟(jì)學(xué)
- 生態(tài)與翻譯生態(tài)翻譯學(xué)理論解構(gòu)
- HQ城環(huán)湖預(yù)熱馬拉松活動(dòng)方案
- 鐵路行車信號-手信號
- 組長述職晉升報(bào)告
- 小學(xué)學(xué)生課外勞動(dòng)任務(wù)計(jì)劃清單(一至六年級)
- 《構(gòu)造地質(zhì)學(xué)》習(xí)題及參考答案
評論
0/150
提交評論