




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第一講概論
本講要點(diǎn)計(jì)算機(jī)軟件的簡(jiǎn)史面向?qū)ο蠹夹g(shù)的基礎(chǔ)Java體系結(jié)構(gòu)最簡(jiǎn)單的Java實(shí)例解決問(wèn)題的求解過(guò)程1/18/20251計(jì)算機(jī)軟件的簡(jiǎn)史計(jì)算機(jī)計(jì)算模式的三次浪潮分布式網(wǎng)絡(luò)計(jì)算模式對(duì)軟件開(kāi)發(fā)技術(shù)的挑戰(zhàn)CORBA標(biāo)準(zhǔn)對(duì)軟件業(yè)界的影響1/18/20252計(jì)算機(jī)軟件的簡(jiǎn)史計(jì)算機(jī)計(jì)算模式的三次浪潮基于主機(jī)的計(jì)算模式:特征:應(yīng)用程序,數(shù)據(jù),界面集為一體。在主機(jī)上運(yùn)行。1/18/20253計(jì)算機(jī)軟件的簡(jiǎn)史計(jì)算機(jī)計(jì)算模式的三次浪潮分布式網(wǎng)絡(luò)(B/S)計(jì)算模式
特征:B=界面+表示層,S=業(yè)務(wù)邏輯層+數(shù)據(jù)訪問(wèn)層+存儲(chǔ)數(shù)據(jù)層在異地、異構(gòu)機(jī)上運(yùn)行。1/18/20255計(jì)算機(jī)軟件的簡(jiǎn)史分布式網(wǎng)絡(luò)計(jì)算模式對(duì)軟件技術(shù)的挑戰(zhàn):
軟件開(kāi)發(fā)的4A目標(biāo)跨平臺(tái)的互操作性(CORBA標(biāo)準(zhǔn))1/18/20256計(jì)算機(jī)軟件的簡(jiǎn)史分布式網(wǎng)絡(luò)計(jì)算模式對(duì)軟件技術(shù)的挑戰(zhàn):軟件開(kāi)發(fā)的4A目標(biāo)
AnyOneAnyWhileAnyTimeAnyDevice1/18/20257計(jì)算機(jī)軟件的簡(jiǎn)史分布式網(wǎng)絡(luò)計(jì)算模式對(duì)軟件開(kāi)發(fā)技術(shù)的挑戰(zhàn):跨平臺(tái)的互操作性(CORBA標(biāo)準(zhǔn)出現(xiàn))1/18/20258CORBA標(biāo)準(zhǔn)模型:IDL應(yīng)用程序?qū)ο蠊迷O(shè)施(CORBAFACILITIES)垂直公用設(shè)施水平公用設(shè)施對(duì)象請(qǐng)求中介(ORB)公用對(duì)象服務(wù)(CORBAservices)
金融
稅務(wù)
保險(xiǎn)命名集合計(jì)時(shí)安全性交易器特許查詢并發(fā)關(guān)系具體化持久性事件生命期事務(wù)處理屬性系統(tǒng)設(shè)施信息設(shè)施任務(wù)設(shè)施界面管理1/18/20259CORBA模型:四層:1.應(yīng)用程序?qū)ο髮邮桥c應(yīng)用程序接口.2.水平公用設(shè)施層是各行各業(yè)的公共設(shè)施服務(wù).如用戶管理,信息管理,系統(tǒng)管理,ftp之類.3.垂直公用設(shè)施層是專業(yè)公共設(shè)施服務(wù).如金融業(yè)的清算系統(tǒng).電子商務(wù)的銀行服務(wù).1/18/202510CORBA模型:4.CORBA服務(wù)層是軟件框架服務(wù).如系統(tǒng)管理:命名,生命期,交易,許可證,安全,計(jì)時(shí)等服務(wù);事物管理:事件,并發(fā),事務(wù)等;信息管理:屬性,關(guān)系,查詢,持久性.具體化,集合等服務(wù).1/18/202511CORBA模型:服務(wù)層共15項(xiàng).目前還在不斷改進(jìn).
5.模型中的ORB主要負(fù)責(zé)CORBA四層的通信.相當(dāng)于軟件總線的作用.6.IDL(InterfacesDefinttionLanguage)接口定義語(yǔ)言參考書(shū):周之英著“現(xiàn)代軟件工程(下)”.1/18/202512CORBA標(biāo)準(zhǔn):IDLIDL接口定義語(yǔ)言編譯器機(jī)制:
樁(stub)、骨架(skeleton)1/18/202513IDL編譯器機(jī)制結(jié)構(gòu):ORB核心DII動(dòng)態(tài)調(diào)用IDL樁ORB接口靜態(tài)IDL骨架動(dòng)態(tài)骨架對(duì)象適配器對(duì)象實(shí)現(xiàn)客戶1/18/202514IDL編譯器機(jī)制:DII動(dòng)態(tài)調(diào)用:運(yùn)行時(shí)的動(dòng)態(tài)接口在客戶端接受靜態(tài)不能確定的請(qǐng)求.IDL樁(stub):靜態(tài)接口,接受本地請(qǐng)求,向ORB提交請(qǐng)求.1/18/202515IDL編譯器機(jī)制:Skeleton骨架:用于遠(yuǎn)程客戶與ORB通信.靜態(tài)骨架:IDL編譯時(shí)的骨架接口.動(dòng)態(tài)骨架:運(yùn)行時(shí)動(dòng)態(tài)骨架接口.1/18/202516IDL編譯器機(jī)制:ORB接口:不同ORB實(shí)現(xiàn)的連接接口.對(duì)象適配器:不同執(zhí)行對(duì)象共享ORB服務(wù)的基本接口.1/18/202517CORBA標(biāo)準(zhǔn)對(duì)軟件業(yè)界的影響
觀念上的影響應(yīng)用軟件體系結(jié)構(gòu)的影響對(duì)軟件產(chǎn)業(yè)的影響對(duì)軟件開(kāi)發(fā)方法的影響1/18/202518CORBA標(biāo)準(zhǔn)對(duì)象軟件業(yè)界的影響對(duì)觀念上的影響:4A目標(biāo),文檔按國(guó)際標(biāo)準(zhǔn)統(tǒng)一以“開(kāi)發(fā)為主”轉(zhuǎn)向以“服務(wù)為主”利用第三方軟件集成企業(yè)文化:團(tuán)隊(duì)精神,和諧氛圍人才素質(zhì):創(chuàng)新,責(zé)任,協(xié)作,誠(chéng)信1/18/202519CORBA標(biāo)準(zhǔn)對(duì)象軟件業(yè)界的影響應(yīng)用軟件體系結(jié)構(gòu)的影響 多層應(yīng)用軟件體系結(jié)構(gòu)的誕生:界面層:瀏覽器表示層:Web服務(wù)器業(yè)務(wù)層,數(shù)據(jù)訪問(wèn)層:應(yīng)用服務(wù)器存儲(chǔ)數(shù)據(jù)層(包括原來(lái)應(yīng)用系統(tǒng)):數(shù)據(jù)庫(kù)服務(wù)器1/18/202520多層應(yīng)用軟件體系結(jié)構(gòu)的誕生界面層瀏覽器分布邏輯層客戶界面控件表示層(JSP,ASP,CGI等)代理層產(chǎn)生:HTML,XMLDHTML,WML等業(yè)務(wù)層業(yè)務(wù)對(duì)象和規(guī)則,數(shù)據(jù)操縱和信息轉(zhuǎn)換數(shù)據(jù)訪數(shù)據(jù)庫(kù)連接,數(shù)據(jù)I/O接口問(wèn)層存儲(chǔ)數(shù)數(shù)據(jù)庫(kù)系統(tǒng),XML庫(kù)等據(jù)層查詢,存儲(chǔ)優(yōu)化和性能協(xié)調(diào)1/18/202521多層應(yīng)用軟件體系結(jié)構(gòu)的誕生界面層:HTML,Applet,Windows等.客戶界面控件:WINDOWS窗口,JavaAWT,Swing等1/18/202522CORBA標(biāo)準(zhǔn)對(duì)象軟件業(yè)界的影響對(duì)軟件產(chǎn)業(yè)的影響:軟件中間件提供商軟件平臺(tái)提供商服務(wù)器軟件提供商構(gòu)件提供商軟件服務(wù)(咨詢)1/18/202523CORBA標(biāo)準(zhǔn)對(duì)象軟件業(yè)界的影響對(duì)軟件開(kāi)發(fā)方法的影響基于構(gòu)件的開(kāi)發(fā)方法流行:構(gòu)件定義構(gòu)件特征構(gòu)件優(yōu)勢(shì)1/18/202524構(gòu)件的定義1:構(gòu)件是一個(gè)幾乎獨(dú)立的可替換的系統(tǒng)部件。它在有明確定義的體系結(jié)構(gòu)上下文中,完成指定功能。它提供一組接口作為構(gòu)件與外界聯(lián)系的契約。1/18/202525構(gòu)件的定義2:軟件構(gòu)件是一個(gè)組合單位,它包括合同聲明的接口及明確說(shuō)明的上下文相關(guān)性。它可以被獨(dú)立部署且服務(wù)于第三方所做的組合。1/18/202526構(gòu)件特征:有用性:構(gòu)件是將功能邏輯與實(shí)現(xiàn)封裝為一體的部件。對(duì)外界是透明不可視但功能明確的組件。獨(dú)立性:構(gòu)件相對(duì)于其他構(gòu)件是獨(dú)立的,但它又很少單個(gè)存在,它總是由第三方對(duì)它進(jìn)行組合,放到某個(gè)指定體系結(jié)構(gòu)的上下文中運(yùn)行。1/18/202527構(gòu)件特征:適應(yīng)性:構(gòu)件是一個(gè)可替換的單元,它通過(guò)契約式接口與外界聯(lián)系.只要接口相同,就可以相互替換。易用性:構(gòu)件是即插即用的部件,無(wú)需做任何加工就可以組合運(yùn)行.1/18/202528構(gòu)件特征:商業(yè)性:構(gòu)件接口按國(guó)際標(biāo)準(zhǔn)定義,可由開(kāi)發(fā)商開(kāi)發(fā),通過(guò)市場(chǎng)發(fā)行銷售.遞歸性:構(gòu)件可以自包含,因此構(gòu)件定義實(shí)際上具有遞歸性,即組合好的構(gòu)件本身,還可以作為構(gòu)件元素與其他構(gòu)件組合。這種構(gòu)件稱為容器。
(參考書(shū):王克宏主編“電子商務(wù)軟件技術(shù)教程”清華出版社)1/18/202529構(gòu)件優(yōu)勢(shì):縮短開(kāi)發(fā)周期,提高軟件生產(chǎn)率提高軟件靈活性和可靠性降低軟件開(kāi)發(fā)成本和維護(hù)費(fèi)用有利于軟件生產(chǎn)工業(yè)化1/18/202530計(jì)算機(jī)軟件簡(jiǎn)史小結(jié)認(rèn)識(shí)到軟件的本質(zhì)特性是構(gòu)造性和演化性:軟件是人對(duì)知識(shí)的提煉、知識(shí)的固化、是人類知識(shí)和經(jīng)驗(yàn)的抽象。為使軟件能簡(jiǎn)潔、精確的描述客觀事務(wù),軟件的多層應(yīng)用建立在公共的體系結(jié)構(gòu)上是構(gòu)件技術(shù)的基本出發(fā)點(diǎn),構(gòu)件體系結(jié)構(gòu)是構(gòu)造軟件的基石,它體現(xiàn)了軟件的構(gòu)造性本質(zhì)。所有軟件都可用構(gòu)件集成而得.1/18/202531計(jì)算機(jī)軟件簡(jiǎn)史小結(jié)軟件是對(duì)客觀世界中問(wèn)題求解的具體描述。而客觀世界是在不斷發(fā)展,不斷地變化。軟件系統(tǒng)也不可能一成不變,新需求、新技術(shù)不斷的出現(xiàn),要求軟件系統(tǒng)不斷升級(jí)。這就是軟件的演化性本質(zhì)。1/18/202532計(jì)算機(jī)軟件簡(jiǎn)史小結(jié)引來(lái)新的軟件技術(shù):Java語(yǔ)言、XML語(yǔ)言、WebServices、SOA開(kāi)發(fā)軟件:
強(qiáng)調(diào)集成、部署強(qiáng)調(diào)面向Web應(yīng)用強(qiáng)調(diào)個(gè)性化服務(wù)1/18/202533面向?qū)ο蠹夹g(shù)的基礎(chǔ)
面向?qū)ο蠓椒ǖ幕靖拍蠲嫦驅(qū)ο蠓椒ǖ幕咎匦悦嫦驅(qū)ο蟮某绦蛟O(shè)計(jì)1/18/202534面向?qū)ο蠹夹g(shù)的基礎(chǔ)面向?qū)ο蠓椒ǖ幕靖拍顚?duì)象類接口方法與消息1/18/202535對(duì)象定義:對(duì)象是從客觀事物中抽象出與系統(tǒng)相關(guān)的,能反映事物本質(zhì)的一個(gè)實(shí)體,它是構(gòu)成系統(tǒng)的基本單位;如:一個(gè)手機(jī)、一輛自行車、一臺(tái)電視機(jī)、一本書(shū)等.也可以是一些抽象的概念:銀行賬號(hào)、郵政編碼、電話號(hào)碼等
1/18/202536對(duì)象特征對(duì)象具備兩個(gè)特征:狀態(tài)和行為。如手機(jī)狀態(tài)有品牌、顏色、號(hào)碼、價(jià)格等;行為有打電話、接電話、發(fā)短信、設(shè)鬧鐘、設(shè)音樂(lè)等。對(duì)象所包含本質(zhì)的特征稱為屬性,對(duì)象的行為描述稱為方法。
1/18/202537對(duì)象特征對(duì)象是問(wèn)題域中事物的抽象.它反映了事物在系統(tǒng)中要保存的信息和所發(fā)揮的作用.系統(tǒng)中的一個(gè)對(duì)象在軟件生命周期的各個(gè)階段可以有不同的形式.它要經(jīng)歷若干演化階段.1/18/202538對(duì)象特征對(duì)象只描述客觀事物本質(zhì)的,與系統(tǒng)目標(biāo)相關(guān)的特征;對(duì)象將屬性和方法封裝為一體.屬性值只能由方法訪問(wèn)和修改.它被隱藏在封裝體內(nèi).使軟件體系結(jié)構(gòu)的復(fù)雜本質(zhì)可隱藏于對(duì)象的單純性中.1/18/202539對(duì)象在程序中定義:一個(gè)對(duì)象是變量和相關(guān)方法的軟件封裝包:存款帳目余額計(jì)算余額
取款帳目余額存款計(jì)算余額取款消息消息消息1/18/202540類定義類是具有相同屬性和方法的一組對(duì)象的集合,它的作用是定義對(duì)象.類是對(duì)象的抽象定義,對(duì)象是類的實(shí)例。類允許用其他類來(lái)定義而形成樹(shù)結(jié)構(gòu).類的嵌套關(guān)系分為一般類(父類)和特殊類(子類).1/18/202541類的特征類的繼承是面向?qū)ο蠓椒ǖ睦^承性體現(xiàn).它給軟件開(kāi)發(fā)帶來(lái)的優(yōu)勢(shì)是:利用類繼承,程序可實(shí)現(xiàn)代碼重用。利用抽象類定義普通行為,無(wú)需編寫(xiě)實(shí)現(xiàn)代碼。其實(shí)現(xiàn)代碼由它的子類編寫(xiě)。1/18/202542類的特征面向?qū)ο蟪绦蚴且唤M對(duì)象類組成.對(duì)象之間通過(guò)接口請(qǐng)求與其他對(duì)象協(xié)同工作,通過(guò)類確定傳遞消息去調(diào)用方法,實(shí)現(xiàn)一定的功能.Java編程注重于類和接口,程序的開(kāi)發(fā)實(shí)質(zhì)上就是將問(wèn)題明確分成多個(gè)類,再?gòu)倪@些類中創(chuàng)建對(duì)象。利用類來(lái)實(shí)現(xiàn)程序代碼的重用,這是面向?qū)ο缶幊套钣绪攘Φ某删汀?/18/202543接口的定義接口是對(duì)象所能接收請(qǐng)求內(nèi)容的規(guī)范.接口由類定義.接口是一種抽象類,只定義了變量和方法,沒(méi)有規(guī)定方法的具體實(shí)現(xiàn)。1/18/202544接口的特征接口給軟件開(kāi)發(fā)帶來(lái)的好處是:接口可以實(shí)現(xiàn)不相關(guān)類有相同的行為.接口可指明多個(gè)類需要實(shí)現(xiàn)的方法.接口可了解對(duì)象的交互界面,而不需要了解對(duì)象所對(duì)應(yīng)的類.1/18/202545消息定義向?qū)ο蟀l(fā)出方法請(qǐng)求稱為消息.對(duì)象通過(guò)消息進(jìn)行通信.類定義了對(duì)象的所有消息模式,也定義了該對(duì)象的所有方法.消息包含信息有:提供方法的對(duì)象名,方法名,輸入信息和應(yīng)答信息.1/18/202546消息特征使用對(duì)象只需了解其消息格式.消息給軟件開(kāi)發(fā)帶來(lái)的好處是:消息將程序的數(shù)據(jù)流和控制流統(tǒng)一.可用消息實(shí)現(xiàn)數(shù)據(jù)傳遞.相同處理的對(duì)象之間,無(wú)需消息傳遞.
1/18/202547面向?qū)ο蠓椒ǖ幕咎匦?封裝性(encapsulation)繼承性(inheritance)多態(tài)性(polymorphism)
1/18/202548封裝性對(duì)象的封裝有兩個(gè)方面:一方面表示對(duì)象的屬性和方法是不可分隔的結(jié)合體.一方面表示對(duì)象內(nèi)部細(xì)節(jié)的隱蔽性.描述客觀事務(wù)對(duì)象的獨(dú)立單元.外界只能與方法聯(lián)系.屬性只能被對(duì)象的方法訪問(wèn).1/18/202549封裝性的優(yōu)勢(shì)對(duì)象的屬性和方法封裝為一體,意味著對(duì)象確實(shí)反映了客觀事物的靜態(tài)特征和動(dòng)態(tài)特征融為一體的普遍規(guī)律.把對(duì)象的屬性和行為結(jié)合產(chǎn)生新的數(shù)據(jù)類型.實(shí)現(xiàn)細(xì)節(jié)隱蔽,接口與實(shí)現(xiàn)的分離.使對(duì)象的使用者和設(shè)計(jì)者分離1/18/202550封裝性的優(yōu)勢(shì)既可以防止外界的干擾,又可以簡(jiǎn)化復(fù)雜性。在Java語(yǔ)言中,對(duì)象、類和包是不同層次上的封裝,為管理大量的對(duì)象和類提供了方便,也增強(qiáng)了語(yǔ)言的安全性.封裝也符合軟件工程的模塊化原則,滿足軟件重用的策略,降低了軟件開(kāi)發(fā)成本,縮短開(kāi)發(fā)周期,使軟件的開(kāi)發(fā)和維護(hù)得到根本性的改善.1/18/202551繼承性繼承性是面向?qū)ο蠹夹g(shù)賦予類的一種特征,即先定義一個(gè)具有一定意義的類(父類),再給此類添加一些特性以派生出一個(gè)新類(子類).子類對(duì)象重復(fù)運(yùn)用其父類的接口繼承可實(shí)現(xiàn)子類重用繼續(xù)可建立新類庫(kù)1/18/202552繼承性將多個(gè)類型視為同類型.同一份程序代碼可作用于多個(gè)類型上.可提高系統(tǒng)的可重用性和可擴(kuò)性.一個(gè)類是多個(gè)父類的子類,這種繼承被稱為多重繼承.Java語(yǔ)言可利用接口實(shí)現(xiàn)類的多重繼承。1/18/202553多態(tài)性對(duì)象的多態(tài)性,是同一個(gè)屬性名或方法名在父類,及其子類中具有不同語(yǔ)義.相同類名可引用不同的方法定義子類方法的覆蓋可實(shí)現(xiàn)多態(tài).方法的重載可在同類中定義多個(gè)同名的參數(shù)不同的方法來(lái)實(shí)現(xiàn)多態(tài).1/18/202554多態(tài)性多態(tài)也稱為動(dòng)態(tài)綁定或后期綁定.利用多態(tài)性提高了程序的抽象程度和簡(jiǎn)潔性.減少類和程序模塊之間的耦合性,可實(shí)現(xiàn)程序良好的擴(kuò)展性.動(dòng)態(tài)多態(tài)性體現(xiàn)了面向?qū)ο缶幊讨写a的重用和健壯性。Java是強(qiáng)類型語(yǔ)言,運(yùn)行時(shí)對(duì)動(dòng)態(tài)類型自動(dòng)保留全部多態(tài)引用的標(biāo)記,并在運(yùn)行時(shí)對(duì)動(dòng)態(tài)類型進(jìn)行檢查。1/18/202555面向?qū)ο蟮某绦蛟O(shè)計(jì):面向?qū)ο蟪绦蛟O(shè)計(jì)包括兩大任務(wù):一是考慮客觀問(wèn)題中的哪些數(shù)據(jù)與操作進(jìn)行封裝,即將客觀實(shí)體與程序的對(duì)象、類進(jìn)行對(duì)應(yīng)。二是考慮對(duì)象間需要哪些消息傳遞才能完成需求的功能。
1/18/202556面向?qū)ο蟮某绦蛟O(shè)計(jì):在編程之前,對(duì)問(wèn)題進(jìn)行面向?qū)ο蟮姆治?,要與客戶進(jìn)行很好的溝通,努力了解問(wèn)題域中所涉及的對(duì)象、對(duì)象之間的關(guān)系以及對(duì)象需要完成哪些操作.再利用抽象原則,尋找對(duì)象共同特性創(chuàng)建出該問(wèn)題的若干個(gè)類,由對(duì)象之間的關(guān)系定義出類的消息和方法。利用消息建立問(wèn)題的模型,使模型盡可能接近問(wèn)題的原意。1/18/202557面向?qū)ο蟮某绦蛟O(shè)計(jì):具體建模過(guò)程中通過(guò)對(duì)問(wèn)題做不同層次的抽象。利用類的繼承性,將類進(jìn)行改造,定義出父類和子類。使問(wèn)題中類的總數(shù)目不要太多。編程單元是類,Java中,注意力放在構(gòu)造新類和復(fù)用已有類上,而不是方法上.1/18/202558面向?qū)ο蟮某绦蛟O(shè)計(jì)“引用”是操縱對(duì)象的鑰匙對(duì)象需要編程者創(chuàng)建建立新類都從類庫(kù)中的類繼承方法,參數(shù),返回值1/18/202559Java的體系結(jié)構(gòu)Java的體系結(jié)構(gòu)Java的實(shí)現(xiàn)機(jī)制JDK的下載和使用1/18/202560Java的體系結(jié)構(gòu)應(yīng)用程序(Applection&Applet),編譯器Java基本APIJava標(biāo)準(zhǔn)擴(kuò)展APIJava基本類Java標(biāo)準(zhǔn)擴(kuò)展類
Java虛擬機(jī),解釋器移植接口
操作系統(tǒng)
1/18/202561Java的體系結(jié)構(gòu)最上一層是應(yīng)用程序和Applet小程序.它們通過(guò)編譯器完成程序到字節(jié)代碼的轉(zhuǎn)換.下一層是基本API和標(biāo)準(zhǔn)擴(kuò)展API.它們都是為應(yīng)用程序和編譯器服務(wù).下層是Java基本類和Java標(biāo)準(zhǔn)擴(kuò)展類.最下層是移植接口,由適配器和JavaOS組成.保證Java體系結(jié)構(gòu)可跨平臺(tái).與各種操作系統(tǒng)連接.
1/18/202562Java的體系結(jié)構(gòu)核心:虛擬機(jī)解釋執(zhí)行字節(jié)代碼.可以用軟件系統(tǒng)模擬實(shí)現(xiàn),也可用硬件芯片實(shí)現(xiàn).虛擬機(jī)把字節(jié)代碼程序與各操作系統(tǒng)和硬件分開(kāi),使Java程序獨(dú)立于平臺(tái).字節(jié)代碼也是一種二進(jìn)制文件,但不能直接在操作系統(tǒng)上運(yùn)行,它可看作為虛擬機(jī)的機(jī)器碼1/18/202563Java的實(shí)現(xiàn)機(jī)制Java虛擬機(jī)垃圾回收機(jī)制代碼安全檢測(cè)1/18/202564Java的實(shí)現(xiàn)機(jī)制垃圾回收機(jī)制:Java用一個(gè)垃圾收集線程對(duì)內(nèi)存的使用進(jìn)行跟蹤,該線程能在虛擬機(jī)空閑周期時(shí),檢查并釋放那些不用的內(nèi)存。在Java程序的生命周期中自動(dòng)進(jìn)行,這使編程者不要求考慮分配存儲(chǔ)器,避免了存儲(chǔ)器引起的漏洞。1/18/202565Java的實(shí)現(xiàn)機(jī)制代碼安全檢測(cè):在編譯層:有語(yǔ)法檢查在解釋層:有字節(jié)碼校驗(yàn)器,測(cè)試代碼段格式和規(guī)則檢查;訪問(wèn)權(quán)限和類型轉(zhuǎn)換合法性檢查;操作數(shù)堆棧的上溢或下溢;代碼參數(shù)類型合法性.在平臺(tái)層上:通過(guò)配置策略,設(shè)定訪問(wèn)資源域.無(wú)需區(qū)分本地或遠(yuǎn)程.1/18/202566JDK的下載和使用JDK的下載JDK的命令JDK目錄結(jié)構(gòu)Java的API結(jié)構(gòu)1/18/202567JDK的下載進(jìn)入點(diǎn)擊左側(cè)“Download”連接,進(jìn)入下載頁(yè)面點(diǎn)擊頁(yè)面中間的“Java2Platform,StandardEdition(J2SE)forWindows”連接,進(jìn)入J2SE頁(yè)面點(diǎn)擊頁(yè)面右側(cè)“J2SE1.5”連接,進(jìn)入J2SE1.5頁(yè)面1/18/202568
JDK的下載選擇“DownloadJDK”欄目點(diǎn)擊,進(jìn)入“l(fā)icenseagreement”文件的下載頁(yè)面選擇“accept”,接受Sun的協(xié)議點(diǎn)擊頁(yè)面中的“Downloadjdk-1_5_0-windows-i586.exe.”下載鏈接,自動(dòng)進(jìn)行瀏覽器下載,也可使用下載工具進(jìn)行下載1/18/202569JDK命令Java語(yǔ)言的編譯器。命令語(yǔ)法:javac[選項(xiàng)]源文件名Java語(yǔ)言的解釋器,命令語(yǔ)法是:java[選項(xiàng)]class[命令行參數(shù)...]JavaAPI文檔生成器,命令語(yǔ)法:javadoc[選項(xiàng)]包名/文件名Javaapplet瀏覽器,命令語(yǔ)法:appletviewer[-debug]URLJava程序的調(diào)試器,命令語(yǔ)法:jdb[選項(xiàng)]類名1/18/202570JDK目錄Bin:編譯器、解釋器和工具
Demo:各種演示例子
Docs:文檔Include:本地方法文件
Jre:Java程序運(yùn)行用環(huán)境的根目錄
Lib:庫(kù)文件
1/18/202571JDK的API結(jié)構(gòu)java.lang包:基本類java.awt包:是封裝抽象窗口工具包java.applet包:為Applet提供的所有類java.io包:程序輸入/輸出文件操作的類.java.util包:提供實(shí)用程序類和集合類javax.swing包:提供構(gòu)建和管理應(yīng)用程序的圖形界面的輕量級(jí)的構(gòu)件1/18/202572最簡(jiǎn)單的Java實(shí)例:1//例1.1DisplayWindom.java2/*目的:鄧小平的一句名言的顯示*/34publicclassDisplayWindom{5//main():應(yīng)用程序入口1/18/202573最簡(jiǎn)單的Java實(shí)例:6publicstaticvoidmain(String[]args){7System.out.print("鄧小平說(shuō):");8System.out.println(“不管白貓、黑貓,能捉老鼠的就是好貓.");9}10}1/18/202574例題說(shuō)明注釋:Java語(yǔ)言有3種注釋語(yǔ)句,其形式為:雙斜杠分隔符“//”表示本行是單行注釋。“//”可出現(xiàn)在一行的開(kāi)始或中間.“/**/”表示是多行注釋。。多行注釋以“/*”和“*/”為界限符。這二個(gè)界限符必須成對(duì)出現(xiàn)。文檔注釋以“/**”和“*/”為界限符。文檔注釋語(yǔ)句是為文檔工具Javadoc生成API文檔時(shí),使文檔和程序同步實(shí)現(xiàn)。程序java的第1、2、5都是注釋語(yǔ)句.1/18/202575例題說(shuō)明類定義:關(guān)鍵詞class指明了類定義的開(kāi)始,后跟類名,然后是一對(duì)花括號(hào){},用來(lái)劃定類體范圍.對(duì)于本例,行4~10包含了DisplayWindom類的類體.Java允許在關(guān)鍵詞class之前加修飾符,用來(lái)對(duì)所定義類的性質(zhì)加以限定。類名DisplayWindom是Java的合法標(biāo)識(shí)符,并要求首字母大寫(xiě).在一個(gè).java文件中最多只能有一個(gè)public類。public后緊跟的是所定義類的名稱。Java要求public類的名稱與程序文件名一致,因此,本例為DisplayWindom.java文件。1/18/202576例題說(shuō)明Java的Application必須要求有main()方法,該方法要求一個(gè)String[]類型的單一參數(shù),類型String[]是字符串列表的數(shù)組。圓括號(hào)后面的一對(duì)花括號(hào)是方法體。在本例的main()方法中,第6,7,8,9行的語(yǔ)句代碼段構(gòu)成方法體。分號(hào)(;)是Java語(yǔ)言的語(yǔ)句結(jié)束符。當(dāng)Java解釋器開(kāi)始運(yùn)行Application程序時(shí),流程控制管理器就轉(zhuǎn)向執(zhí)行應(yīng)用程序的main()方法,而main()中的語(yǔ)句是按順序執(zhí)行。因此,當(dāng)程序DisplayWindom運(yùn)行時(shí),首先執(zhí)行第6行的語(yǔ)句,然后執(zhí)行第7行和第8行的語(yǔ)句。1/18/202577例題說(shuō)明本例第7行和第8行是利用System.out表示從System類中選出out變量值。通過(guò)這個(gè)值,程序可以訪問(wèn)顯示窗口的文字對(duì)象。這個(gè)對(duì)象被稱為輸出流.訪問(wèn)System的一個(gè)成員out,程序使用點(diǎn)(.)把它從System中選出來(lái),點(diǎn)是Java的選擇器機(jī)制。System是是java.lang包中的標(biāo)準(zhǔn)I/O類,它提供許多系統(tǒng)信息。用它編程者在與設(shè)備打交道的時(shí),不用關(guān)心設(shè)備的底層操作細(xì)節(jié)1/18/202578Java語(yǔ)言的特點(diǎn)簡(jiǎn)單易學(xué)●面向?qū)ο笾С址植际接?jì)算●跨平臺(tái)健壯性●安全性強(qiáng)可移植●解釋執(zhí)行高性能●多線程Applet的特殊用途●動(dòng)態(tài)性1/18/202579解決問(wèn)題的求解過(guò)程軟件工程原理面向?qū)ο缶幊陶Z(yǔ)言的步驟1/18/202580解決問(wèn)題的求解過(guò)程軟件工程原理分析設(shè)計(jì)編程測(cè)試維護(hù)1/18/202581解決問(wèn)題的求解過(guò)程軟件工程原理:分析:與用戶交流,了解問(wèn)題領(lǐng)域知識(shí).并確定用戶的需求和目標(biāo)。(做什么)設(shè)計(jì):描述解決問(wèn)題所需要的信息和方法。(怎樣做)1/18/202582解決問(wèn)題的求解過(guò)程軟件工程原理:編程:寫(xiě)出實(shí)現(xiàn)解決問(wèn)題的程序代碼。(具體實(shí)現(xiàn))測(cè)試:對(duì)程序代碼,進(jìn)行單元測(cè)試和集成測(cè)試。(實(shí)現(xiàn)周期)維護(hù):交付使用后的不斷改錯(cuò),改進(jìn)和完善.(終身服務(wù))(反復(fù)迭代過(guò)程!)1/18/202583解決問(wèn)題的求解過(guò)程面向?qū)ο缶幊陶Z(yǔ)言的步驟由用戶、業(yè)務(wù)專家和軟件開(kāi)發(fā)者組成團(tuán)隊(duì)問(wèn)題的需求的描述確定類確定變量和方法確定系統(tǒng)的體系結(jié)構(gòu)確定開(kāi)發(fā)工具并編寫(xiě)程序1/18/202584解決問(wèn)題的求解過(guò)程自動(dòng)取款機(jī)(ATM)軟件求解過(guò)程:需求描述確定類確定業(yè)務(wù)流程(變量和方法)確定用戶界面確定軟件最終的體系結(jié)構(gòu)1/18/202585解決問(wèn)題的求解過(guò)程ATM軟件求解過(guò)程:需求描述:顧客持卡取款.對(duì)使用ATM的事務(wù)都留記錄,每天報(bào)告.軟件有適當(dāng)?shù)陌踩胧?暫時(shí)不考慮支付每個(gè)賬戶能同時(shí)在多個(gè)ATM上查詢和取款考慮未來(lái)擴(kuò)展,增加出納點(diǎn)和網(wǎng)絡(luò)客戶機(jī)1/18/202586ATM軟件求解過(guò)程:需求描述限制:ATM軟件由銀行擁有ATM軟件在服務(wù)器中運(yùn)行卡由銀行發(fā)行,并保留客戶信息ATM界面由銀行確定所有ATM的用戶界面相同1/18/202587ATM軟件求解過(guò)程:確定候選對(duì)象類:
Transaction事務(wù)(查賬,取款等)Session使用期Card取款卡DailyLog日志,ATM自動(dòng)取款機(jī)1/18/202588ATM軟件求解過(guò)程:確定候選對(duì)象類:Cashier出納點(diǎn)NetCleint網(wǎng)絡(luò)客戶機(jī)ATMManager管理ATM軟件BankInfo銀行資料1/18/202589ATM軟件求解過(guò)程:確定對(duì)象類BankInfo
ATMManagerDailyLogSessionCard
Agent
ATMCashiesNet客戶Transaction111**1***1***11*1/18/202590ATM軟件求解過(guò)程:確定對(duì)象類屬性:ATMManager類屬性:adminPassword:String//系統(tǒng)管理員口令bankInfos:Container//銀行信息庫(kù)sessions:Container//使用期容器dailyLogs:Container//日志容器agents:Container//代理容器1/18/202591ATM軟件求解過(guò)程:確定對(duì)象類屬性:BankInfo類屬性:name:String//名字prefix:Integer//前綴serverName:String//服務(wù)器名字cards:Container//取款卡1/18/202592ATM軟件求解過(guò)程:確定對(duì)象類屬性:Card類屬性:number:Integer//編號(hào)name:String//名字accountName:Integer//賬號(hào)sessions:Session[*]//使用期變數(shù)據(jù)1/18/202593ATM軟件求解過(guò)程:確定對(duì)象類屬性:Session類屬性:startTime:Time//起始時(shí)間endTime:Time//結(jié)束時(shí)間card:Card//取款卡agent:Agent//代理//事務(wù)可變數(shù)組transactions:Transaction[*]1/18/202594ATM軟件求解過(guò)程:確定對(duì)象類屬性:Transaction類屬性:time:Time//時(shí)間content:String//內(nèi)容1/18/202595ATM軟件求解過(guò)程:確定對(duì)象類屬性:DailyLog類屬性:date:Date//日期sessions:Container//使用期容器1/18/202596ATM軟件求解過(guò)程:確定對(duì)象類屬性:Agent類屬性:id:String//標(biāo)識(shí)符name:String//名字sessions:Container//使用期容器1/18/202597ATM軟件求解過(guò)程:確定對(duì)象類屬性:ATM類屬性:location:String//地點(diǎn)Cashier類屬性:String//分店名NetClient類屬性:url:URL//網(wǎng)站1/18/202598ATM軟件求解過(guò)程:確定對(duì)象類屬性:確定變量和方法:涉及對(duì)象:顧客(取款卡),ATM客戶機(jī),ATM管理器,銀行.兩對(duì)C/S:ATM客戶機(jī)/ATM管理器ATM管理器/銀行銀行界面ATM管理器界面
1/18/202599ATM軟件求解過(guò)程:涉及到的變量:cardInfor卡信息account賬戶amount金額accountName賬戶名accountInfor賬戶信息receiver收款人1/18/2025100ATM軟件取款過(guò)程序列圖插入卡問(wèn)口令鍵入口令選擇事務(wù)
問(wèn)金額輸入金額提供現(xiàn)金ATM查證命令檢查賬號(hào)資料口令正確口令正確請(qǐng)求處理事務(wù)處理銀行事務(wù)事務(wù)完成數(shù)據(jù)記錄確認(rèn)事務(wù)已完成
ATMManagerBank1/18/2025101ATM軟件求解過(guò)程:確定對(duì)象類屬性:確定變量和方法:ATMManager類中的方法://構(gòu)造方法ATMManager()ATMManager(adminiPasswordString)1/18/2025102ATM軟件求解過(guò)程:確定對(duì)象類屬性:確定變量和方法:ATMManager類中的方法://注冊(cè)系統(tǒng)方法login(cardInfo:CardInfo)logout()1/18/2025103ATM軟件求解過(guò)程:確定對(duì)象類屬性:確定變量和方法:ATMManager類中的方法://訪問(wèn)方法:getBankInfos():BankInfo[*]getSessions():Session[*]getDailyLogs():DailyLog[*]1/18/2025104ATM軟件求解過(guò)程:確定對(duì)象類屬性:確定變量和方法:ATMManager類中的方法:getAgents():Agent[*]addBankInfo(name:String):BankInforemoveBankInfo(name:String):BankInfoaddSession(startTime,card,agent)removeSession(session):Session1/18/2025105ATM軟件求解過(guò)程:確定對(duì)象類屬性:確定變量和方法:ATMManager類中的方法:
addDailyLog(date):DailyLogremoveDailyLog(date)addAgent(agent)removeAgent(id)
1/18/2025106ATM軟件求解過(guò)程:確定對(duì)象類屬性:確定變量和方法:BankInfo類中的方法:BankInfo(name,prefix,serverName)getName():StringgetServerName():String1/18/2025107ATM軟件求解過(guò)程:確定對(duì)象類屬性:確定變量和方法:BankInfo類中的方法:getCard():Card[*]addCard(number,name,accountNumberremoveCard(number)1/18/2025108ATM軟件求解過(guò)程:確定對(duì)象類屬性:確定變量和方法:BankInfo類中的方法:Card(number,name,accountNumber)getNumber()getName()1/18/2025109ATM軟件求解過(guò)程:確定對(duì)象類屬性:確定變量和方法:BankInfo類中的方法:getAccountNumber()getSessions()addSessions(session)1/18/2025110ATM軟件求解過(guò)程:確定對(duì)象類屬性:確定變量和方法:Session類中的方法:Session(startTime,card,agent)getStartTime()getEndTime()getCard()1/18/2025111ATM軟件求解過(guò)程:確定對(duì)象類屬性:確定變量和方法:Session類中的方法:
getAgent()getTransactions:Transaction[*]addSession(endTime)addTransaction(time,content)1/18/2025112ATM軟件求解過(guò)程:確定對(duì)象類屬性:確定變量和方法:Transaction類中的方法:
Transaction(time,content)getTime():TimegetContent():String1/18/2025113ATM軟件求解過(guò)程:確定對(duì)象類屬性:確定變量和方法:DailyLog類中的方法:DailyLog(date)//構(gòu)造方法getDate()getSessions()addSession()1/18/2025114ATM軟件求解過(guò)程:確定對(duì)象類屬性:確定變量和方法:Agent類中的方法:(抽象類無(wú)構(gòu)造方法)getId()getName()getSessions()addSession()1/18/2025115ATM軟件求解過(guò)程:確定對(duì)象類屬性:確定變量和方法:ATM類中的方法:ATM(id,name,location)//構(gòu)造方法getLocation():String1/18/2025116ATM軟件求解過(guò)程:確定對(duì)象類屬性:確定變量和方法:Cashier類中的方法:Cashier(id,name,branch)//構(gòu)造方法getBranch():String//獲取分店名1/18/2025117ATM軟件求解過(guò)程:確定用戶界面:銀行用戶界面:AccountMgrInf接口AccountInf接口AccountMgrImplAccountImpl管理實(shí)施實(shí)施1*1/18/2025118ATM軟件求解過(guò)程:確定用戶界面:銀行用戶界面AccountIF接口定義方法:getBalance():Float//提取結(jié)余//提取帳戶信息getAccountInfo():AccountInfo//提取賬戶歷史getHistory():String1/18/2025119ATM軟件求解過(guò)程:確定用戶界面:銀行用戶界面AccountIF接口定義方法:deposit(amount:Float):Float//存入金額withdraw(amount:Float):Float//提取金額transferTo(amountNameString,amount:Float)Float//轉(zhuǎn)賬payBill(receiver:String,amount:Float):Float//付款1/18/2025120ATM軟件求解過(guò)程:確定用戶界面:銀行用戶界面AccountMgrIF接口方法:login(accountInfo:AccountInf):AccountIFlogout(account:AccountIF):
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《全球建筑鑒賞》課件
- 《嬰幼兒早期教育》課件
- 《中國(guó)文化》課件
- 江蘇省華士中學(xué)2025年初三二模沖刺英語(yǔ)試題(一)含答案
- 新疆司法警官職業(yè)學(xué)院《語(yǔ)文名篇研習(xí)》2023-2024學(xué)年第二學(xué)期期末試卷
- 機(jī)械工程師資格證考生的專業(yè)提升與試題及答案
- 人力資源管理師歷年真題
- 2025年中國(guó)提花彈性帶數(shù)據(jù)監(jiān)測(cè)報(bào)告
- 辦公自動(dòng)化中區(qū)塊鏈技術(shù)在供應(yīng)鏈的應(yīng)用
- 2025-2026學(xué)年相信未來(lái)教案及反思
- 公司管理制度員工手冊(cè)
- 流程建設(shè)培訓(xùn)
- 小學(xué)數(shù)學(xué)課程與教學(xué)論教案
- 2025慢性阻塞性肺?。℅OLD)指南更新要點(diǎn)解讀課件
- KIF14調(diào)控膀胱癌進(jìn)展的作用與機(jī)制研究
- 2025年春新北師大版數(shù)學(xué)七年級(jí)下冊(cè)課件 ☆問(wèn)題解決策略:特殊化
- 《茶文化歷史》課件
- 碳碳復(fù)合材料
- 2025年高壓電工作業(yè)考試國(guó)家總局題庫(kù)及答案(共280題)
- 汽車維修場(chǎng)所安全管理協(xié)議書(shū)
- 《碳金融》 課件全套 彭紅軍 第1-10章 碳金融的起源-中國(guó)碳金融市場(chǎng)發(fā)展
評(píng)論
0/150
提交評(píng)論