第一講java概論講義資料_第1頁
第一講java概論講義資料_第2頁
第一講java概論講義資料_第3頁
第一講java概論講義資料_第4頁
第一講java概論講義資料_第5頁
已閱讀5頁,還剩128頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

第一講概論

本講要點計算機軟件的簡史面向?qū)ο蠹夹g的基礎Java體系結構最簡單的Java實例解決問題的求解過程1/18/20251計算機軟件的簡史計算機計算模式的三次浪潮分布式網(wǎng)絡計算模式對軟件開發(fā)技術的挑戰(zhàn)CORBA標準對軟件業(yè)界的影響1/18/20252計算機軟件的簡史計算機計算模式的三次浪潮基于主機的計算模式:特征:應用程序,數(shù)據(jù),界面集為一體。在主機上運行。1/18/20253計算機軟件的簡史計算機計算模式的三次浪潮分布式網(wǎng)絡(B/S)計算模式

特征:B=界面+表示層,S=業(yè)務邏輯層+數(shù)據(jù)訪問層+存儲數(shù)據(jù)層在異地、異構機上運行。1/18/20255計算機軟件的簡史分布式網(wǎng)絡計算模式對軟件技術的挑戰(zhàn):

軟件開發(fā)的4A目標跨平臺的互操作性(CORBA標準)1/18/20256計算機軟件的簡史分布式網(wǎng)絡計算模式對軟件技術的挑戰(zhàn):軟件開發(fā)的4A目標

AnyOneAnyWhileAnyTimeAnyDevice1/18/20257計算機軟件的簡史分布式網(wǎng)絡計算模式對軟件開發(fā)技術的挑戰(zhàn):跨平臺的互操作性(CORBA標準出現(xiàn))1/18/20258CORBA標準模型:IDL應用程序?qū)ο蠊迷O施(CORBAFACILITIES)垂直公用設施水平公用設施對象請求中介(ORB)公用對象服務(CORBAservices)

金融

稅務

保險命名集合計時安全性交易器特許查詢并發(fā)關系具體化持久性事件生命期事務處理屬性系統(tǒng)設施信息設施任務設施界面管理1/18/20259CORBA模型:四層:1.應用程序?qū)ο髮邮桥c應用程序接口.2.水平公用設施層是各行各業(yè)的公共設施服務.如用戶管理,信息管理,系統(tǒng)管理,ftp之類.3.垂直公用設施層是專業(yè)公共設施服務.如金融業(yè)的清算系統(tǒng).電子商務的銀行服務.1/18/202510CORBA模型:4.CORBA服務層是軟件框架服務.如系統(tǒng)管理:命名,生命期,交易,許可證,安全,計時等服務;事物管理:事件,并發(fā),事務等;信息管理:屬性,關系,查詢,持久性.具體化,集合等服務.1/18/202511CORBA模型:服務層共15項.目前還在不斷改進.

5.模型中的ORB主要負責CORBA四層的通信.相當于軟件總線的作用.6.IDL(InterfacesDefinttionLanguage)接口定義語言參考書:周之英著“現(xiàn)代軟件工程(下)”.1/18/202512CORBA標準:IDLIDL接口定義語言編譯器機制:

樁(stub)、骨架(skeleton)1/18/202513IDL編譯器機制結構:ORB核心DII動態(tài)調(diào)用IDL樁ORB接口靜態(tài)IDL骨架動態(tài)骨架對象適配器對象實現(xiàn)客戶1/18/202514IDL編譯器機制:DII動態(tài)調(diào)用:運行時的動態(tài)接口在客戶端接受靜態(tài)不能確定的請求.IDL樁(stub):靜態(tài)接口,接受本地請求,向ORB提交請求.1/18/202515IDL編譯器機制:Skeleton骨架:用于遠程客戶與ORB通信.靜態(tài)骨架:IDL編譯時的骨架接口.動態(tài)骨架:運行時動態(tài)骨架接口.1/18/202516IDL編譯器機制:ORB接口:不同ORB實現(xiàn)的連接接口.對象適配器:不同執(zhí)行對象共享ORB服務的基本接口.1/18/202517CORBA標準對軟件業(yè)界的影響

觀念上的影響應用軟件體系結構的影響對軟件產(chǎn)業(yè)的影響對軟件開發(fā)方法的影響1/18/202518CORBA標準對象軟件業(yè)界的影響對觀念上的影響:4A目標,文檔按國際標準統(tǒng)一以“開發(fā)為主”轉(zhuǎn)向以“服務為主”利用第三方軟件集成企業(yè)文化:團隊精神,和諧氛圍人才素質(zhì):創(chuàng)新,責任,協(xié)作,誠信1/18/202519CORBA標準對象軟件業(yè)界的影響應用軟件體系結構的影響 多層應用軟件體系結構的誕生:界面層:瀏覽器表示層:Web服務器業(yè)務層,數(shù)據(jù)訪問層:應用服務器存儲數(shù)據(jù)層(包括原來應用系統(tǒng)):數(shù)據(jù)庫服務器1/18/202520多層應用軟件體系結構的誕生界面層瀏覽器分布邏輯層客戶界面控件表示層(JSP,ASP,CGI等)代理層產(chǎn)生:HTML,XMLDHTML,WML等業(yè)務層業(yè)務對象和規(guī)則,數(shù)據(jù)操縱和信息轉(zhuǎn)換數(shù)據(jù)訪數(shù)據(jù)庫連接,數(shù)據(jù)I/O接口問層存儲數(shù)數(shù)據(jù)庫系統(tǒng),XML庫等據(jù)層查詢,存儲優(yōu)化和性能協(xié)調(diào)1/18/202521多層應用軟件體系結構的誕生界面層:HTML,Applet,Windows等.客戶界面控件:WINDOWS窗口,JavaAWT,Swing等1/18/202522CORBA標準對象軟件業(yè)界的影響對軟件產(chǎn)業(yè)的影響:軟件中間件提供商軟件平臺提供商服務器軟件提供商構件提供商軟件服務(咨詢)1/18/202523CORBA標準對象軟件業(yè)界的影響對軟件開發(fā)方法的影響基于構件的開發(fā)方法流行:構件定義構件特征構件優(yōu)勢1/18/202524構件的定義1:構件是一個幾乎獨立的可替換的系統(tǒng)部件。它在有明確定義的體系結構上下文中,完成指定功能。它提供一組接口作為構件與外界聯(lián)系的契約。1/18/202525構件的定義2:軟件構件是一個組合單位,它包括合同聲明的接口及明確說明的上下文相關性。它可以被獨立部署且服務于第三方所做的組合。1/18/202526構件特征:有用性:構件是將功能邏輯與實現(xiàn)封裝為一體的部件。對外界是透明不可視但功能明確的組件。獨立性:構件相對于其他構件是獨立的,但它又很少單個存在,它總是由第三方對它進行組合,放到某個指定體系結構的上下文中運行。1/18/202527構件特征:適應性:構件是一個可替換的單元,它通過契約式接口與外界聯(lián)系.只要接口相同,就可以相互替換。易用性:構件是即插即用的部件,無需做任何加工就可以組合運行.1/18/202528構件特征:商業(yè)性:構件接口按國際標準定義,可由開發(fā)商開發(fā),通過市場發(fā)行銷售.遞歸性:構件可以自包含,因此構件定義實際上具有遞歸性,即組合好的構件本身,還可以作為構件元素與其他構件組合。這種構件稱為容器。

(參考書:王克宏主編“電子商務軟件技術教程”清華出版社)1/18/202529構件優(yōu)勢:縮短開發(fā)周期,提高軟件生產(chǎn)率提高軟件靈活性和可靠性降低軟件開發(fā)成本和維護費用有利于軟件生產(chǎn)工業(yè)化1/18/202530計算機軟件簡史小結認識到軟件的本質(zhì)特性是構造性和演化性:軟件是人對知識的提煉、知識的固化、是人類知識和經(jīng)驗的抽象。為使軟件能簡潔、精確的描述客觀事務,軟件的多層應用建立在公共的體系結構上是構件技術的基本出發(fā)點,構件體系結構是構造軟件的基石,它體現(xiàn)了軟件的構造性本質(zhì)。所有軟件都可用構件集成而得.1/18/202531計算機軟件簡史小結軟件是對客觀世界中問題求解的具體描述。而客觀世界是在不斷發(fā)展,不斷地變化。軟件系統(tǒng)也不可能一成不變,新需求、新技術不斷的出現(xiàn),要求軟件系統(tǒng)不斷升級。這就是軟件的演化性本質(zhì)。1/18/202532計算機軟件簡史小結引來新的軟件技術:Java語言、XML語言、WebServices、SOA開發(fā)軟件:

強調(diào)集成、部署強調(diào)面向Web應用強調(diào)個性化服務1/18/202533面向?qū)ο蠹夹g的基礎

面向?qū)ο蠓椒ǖ幕靖拍蠲嫦驅(qū)ο蠓椒ǖ幕咎匦悦嫦驅(qū)ο蟮某绦蛟O計1/18/202534面向?qū)ο蠹夹g的基礎面向?qū)ο蠓椒ǖ幕靖拍顚ο箢惤涌诜椒ㄅc消息1/18/202535對象定義:對象是從客觀事物中抽象出與系統(tǒng)相關的,能反映事物本質(zhì)的一個實體,它是構成系統(tǒng)的基本單位;如:一個手機、一輛自行車、一臺電視機、一本書等.也可以是一些抽象的概念:銀行賬號、郵政編碼、電話號碼等

1/18/202536對象特征對象具備兩個特征:狀態(tài)和行為。如手機狀態(tài)有品牌、顏色、號碼、價格等;行為有打電話、接電話、發(fā)短信、設鬧鐘、設音樂等。對象所包含本質(zhì)的特征稱為屬性,對象的行為描述稱為方法。

1/18/202537對象特征對象是問題域中事物的抽象.它反映了事物在系統(tǒng)中要保存的信息和所發(fā)揮的作用.系統(tǒng)中的一個對象在軟件生命周期的各個階段可以有不同的形式.它要經(jīng)歷若干演化階段.1/18/202538對象特征對象只描述客觀事物本質(zhì)的,與系統(tǒng)目標相關的特征;對象將屬性和方法封裝為一體.屬性值只能由方法訪問和修改.它被隱藏在封裝體內(nèi).使軟件體系結構的復雜本質(zhì)可隱藏于對象的單純性中.1/18/202539對象在程序中定義:一個對象是變量和相關方法的軟件封裝包:存款帳目余額計算余額

取款帳目余額存款計算余額取款消息消息消息1/18/202540類定義類是具有相同屬性和方法的一組對象的集合,它的作用是定義對象.類是對象的抽象定義,對象是類的實例。類允許用其他類來定義而形成樹結構.類的嵌套關系分為一般類(父類)和特殊類(子類).1/18/202541類的特征類的繼承是面向?qū)ο蠓椒ǖ睦^承性體現(xiàn).它給軟件開發(fā)帶來的優(yōu)勢是:利用類繼承,程序可實現(xiàn)代碼重用。利用抽象類定義普通行為,無需編寫實現(xiàn)代碼。其實現(xiàn)代碼由它的子類編寫。1/18/202542類的特征面向?qū)ο蟪绦蚴且唤M對象類組成.對象之間通過接口請求與其他對象協(xié)同工作,通過類確定傳遞消息去調(diào)用方法,實現(xiàn)一定的功能.Java編程注重于類和接口,程序的開發(fā)實質(zhì)上就是將問題明確分成多個類,再從這些類中創(chuàng)建對象。利用類來實現(xiàn)程序代碼的重用,這是面向?qū)ο缶幊套钣绪攘Φ某删汀?/18/202543接口的定義接口是對象所能接收請求內(nèi)容的規(guī)范.接口由類定義.接口是一種抽象類,只定義了變量和方法,沒有規(guī)定方法的具體實現(xiàn)。1/18/202544接口的特征接口給軟件開發(fā)帶來的好處是:接口可以實現(xiàn)不相關類有相同的行為.接口可指明多個類需要實現(xiàn)的方法.接口可了解對象的交互界面,而不需要了解對象所對應的類.1/18/202545消息定義向?qū)ο蟀l(fā)出方法請求稱為消息.對象通過消息進行通信.類定義了對象的所有消息模式,也定義了該對象的所有方法.消息包含信息有:提供方法的對象名,方法名,輸入信息和應答信息.1/18/202546消息特征使用對象只需了解其消息格式.消息給軟件開發(fā)帶來的好處是:消息將程序的數(shù)據(jù)流和控制流統(tǒng)一.可用消息實現(xiàn)數(shù)據(jù)傳遞.相同處理的對象之間,無需消息傳遞.

1/18/202547面向?qū)ο蠓椒ǖ幕咎匦?封裝性(encapsulation)繼承性(inheritance)多態(tài)性(polymorphism)

1/18/202548封裝性對象的封裝有兩個方面:一方面表示對象的屬性和方法是不可分隔的結合體.一方面表示對象內(nèi)部細節(jié)的隱蔽性.描述客觀事務對象的獨立單元.外界只能與方法聯(lián)系.屬性只能被對象的方法訪問.1/18/202549封裝性的優(yōu)勢對象的屬性和方法封裝為一體,意味著對象確實反映了客觀事物的靜態(tài)特征和動態(tài)特征融為一體的普遍規(guī)律.把對象的屬性和行為結合產(chǎn)生新的數(shù)據(jù)類型.實現(xiàn)細節(jié)隱蔽,接口與實現(xiàn)的分離.使對象的使用者和設計者分離1/18/202550封裝性的優(yōu)勢既可以防止外界的干擾,又可以簡化復雜性。在Java語言中,對象、類和包是不同層次上的封裝,為管理大量的對象和類提供了方便,也增強了語言的安全性.封裝也符合軟件工程的模塊化原則,滿足軟件重用的策略,降低了軟件開發(fā)成本,縮短開發(fā)周期,使軟件的開發(fā)和維護得到根本性的改善.1/18/202551繼承性繼承性是面向?qū)ο蠹夹g賦予類的一種特征,即先定義一個具有一定意義的類(父類),再給此類添加一些特性以派生出一個新類(子類).子類對象重復運用其父類的接口繼承可實現(xiàn)子類重用繼續(xù)可建立新類庫1/18/202552繼承性將多個類型視為同類型.同一份程序代碼可作用于多個類型上.可提高系統(tǒng)的可重用性和可擴性.一個類是多個父類的子類,這種繼承被稱為多重繼承.Java語言可利用接口實現(xiàn)類的多重繼承。1/18/202553多態(tài)性對象的多態(tài)性,是同一個屬性名或方法名在父類,及其子類中具有不同語義.相同類名可引用不同的方法定義子類方法的覆蓋可實現(xiàn)多態(tài).方法的重載可在同類中定義多個同名的參數(shù)不同的方法來實現(xiàn)多態(tài).1/18/202554多態(tài)性多態(tài)也稱為動態(tài)綁定或后期綁定.利用多態(tài)性提高了程序的抽象程度和簡潔性.減少類和程序模塊之間的耦合性,可實現(xiàn)程序良好的擴展性.動態(tài)多態(tài)性體現(xiàn)了面向?qū)ο缶幊讨写a的重用和健壯性。Java是強類型語言,運行時對動態(tài)類型自動保留全部多態(tài)引用的標記,并在運行時對動態(tài)類型進行檢查。1/18/202555面向?qū)ο蟮某绦蛟O計:面向?qū)ο蟪绦蛟O計包括兩大任務:一是考慮客觀問題中的哪些數(shù)據(jù)與操作進行封裝,即將客觀實體與程序的對象、類進行對應。二是考慮對象間需要哪些消息傳遞才能完成需求的功能。

1/18/202556面向?qū)ο蟮某绦蛟O計:在編程之前,對問題進行面向?qū)ο蟮姆治?,要與客戶進行很好的溝通,努力了解問題域中所涉及的對象、對象之間的關系以及對象需要完成哪些操作.再利用抽象原則,尋找對象共同特性創(chuàng)建出該問題的若干個類,由對象之間的關系定義出類的消息和方法。利用消息建立問題的模型,使模型盡可能接近問題的原意。1/18/202557面向?qū)ο蟮某绦蛟O計:具體建模過程中通過對問題做不同層次的抽象。利用類的繼承性,將類進行改造,定義出父類和子類。使問題中類的總數(shù)目不要太多。編程單元是類,Java中,注意力放在構造新類和復用已有類上,而不是方法上.1/18/202558面向?qū)ο蟮某绦蛟O計“引用”是操縱對象的鑰匙對象需要編程者創(chuàng)建建立新類都從類庫中的類繼承方法,參數(shù),返回值1/18/202559Java的體系結構Java的體系結構Java的實現(xiàn)機制JDK的下載和使用1/18/202560Java的體系結構應用程序(Applection&Applet),編譯器Java基本APIJava標準擴展APIJava基本類Java標準擴展類

Java虛擬機,解釋器移植接口

操作系統(tǒng)

1/18/202561Java的體系結構最上一層是應用程序和Applet小程序.它們通過編譯器完成程序到字節(jié)代碼的轉(zhuǎn)換.下一層是基本API和標準擴展API.它們都是為應用程序和編譯器服務.下層是Java基本類和Java標準擴展類.最下層是移植接口,由適配器和JavaOS組成.保證Java體系結構可跨平臺.與各種操作系統(tǒng)連接.

1/18/202562Java的體系結構核心:虛擬機解釋執(zhí)行字節(jié)代碼.可以用軟件系統(tǒng)模擬實現(xiàn),也可用硬件芯片實現(xiàn).虛擬機把字節(jié)代碼程序與各操作系統(tǒng)和硬件分開,使Java程序獨立于平臺.字節(jié)代碼也是一種二進制文件,但不能直接在操作系統(tǒng)上運行,它可看作為虛擬機的機器碼1/18/202563Java的實現(xiàn)機制Java虛擬機垃圾回收機制代碼安全檢測1/18/202564Java的實現(xiàn)機制垃圾回收機制:Java用一個垃圾收集線程對內(nèi)存的使用進行跟蹤,該線程能在虛擬機空閑周期時,檢查并釋放那些不用的內(nèi)存。在Java程序的生命周期中自動進行,這使編程者不要求考慮分配存儲器,避免了存儲器引起的漏洞。1/18/202565Java的實現(xiàn)機制代碼安全檢測:在編譯層:有語法檢查在解釋層:有字節(jié)碼校驗器,測試代碼段格式和規(guī)則檢查;訪問權限和類型轉(zhuǎn)換合法性檢查;操作數(shù)堆棧的上溢或下溢;代碼參數(shù)類型合法性.在平臺層上:通過配置策略,設定訪問資源域.無需區(qū)分本地或遠程.1/18/202566JDK的下載和使用JDK的下載JDK的命令JDK目錄結構Java的API結構1/18/202567JDK的下載進入點擊左側(cè)“Download”連接,進入下載頁面點擊頁面中間的“Java2Platform,StandardEdition(J2SE)forWindows”連接,進入J2SE頁面點擊頁面右側(cè)“J2SE1.5”連接,進入J2SE1.5頁面1/18/202568

JDK的下載選擇“DownloadJDK”欄目點擊,進入“l(fā)icenseagreement”文件的下載頁面選擇“accept”,接受Sun的協(xié)議點擊頁面中的“Downloadjdk-1_5_0-windows-i586.exe.”下載鏈接,自動進行瀏覽器下載,也可使用下載工具進行下載1/18/202569JDK命令Java語言的編譯器。命令語法:javac[選項]源文件名Java語言的解釋器,命令語法是:java[選項]class[命令行參數(shù)...]JavaAPI文檔生成器,命令語法:javadoc[選項]包名/文件名Javaapplet瀏覽器,命令語法:appletviewer[-debug]URLJava程序的調(diào)試器,命令語法:jdb[選項]類名1/18/202570JDK目錄Bin:編譯器、解釋器和工具

Demo:各種演示例子

Docs:文檔Include:本地方法文件

Jre:Java程序運行用環(huán)境的根目錄

Lib:庫文件

1/18/202571JDK的API結構java.lang包:基本類java.awt包:是封裝抽象窗口工具包java.applet包:為Applet提供的所有類java.io包:程序輸入/輸出文件操作的類.java.util包:提供實用程序類和集合類javax.swing包:提供構建和管理應用程序的圖形界面的輕量級的構件1/18/202572最簡單的Java實例:1//例1.1DisplayWindom.java2/*目的:鄧小平的一句名言的顯示*/34publicclassDisplayWindom{5//main():應用程序入口1/18/202573最簡單的Java實例:6publicstaticvoidmain(String[]args){7System.out.print("鄧小平說:");8System.out.println(“不管白貓、黑貓,能捉老鼠的就是好貓.");9}10}1/18/202574例題說明注釋:Java語言有3種注釋語句,其形式為:雙斜杠分隔符“//”表示本行是單行注釋。“//”可出現(xiàn)在一行的開始或中間.“/**/”表示是多行注釋。。多行注釋以“/*”和“*/”為界限符。這二個界限符必須成對出現(xiàn)。文檔注釋以“/**”和“*/”為界限符。文檔注釋語句是為文檔工具Javadoc生成API文檔時,使文檔和程序同步實現(xiàn)。程序java的第1、2、5都是注釋語句.1/18/202575例題說明類定義:關鍵詞class指明了類定義的開始,后跟類名,然后是一對花括號{},用來劃定類體范圍.對于本例,行4~10包含了DisplayWindom類的類體.Java允許在關鍵詞class之前加修飾符,用來對所定義類的性質(zhì)加以限定。類名DisplayWindom是Java的合法標識符,并要求首字母大寫.在一個.java文件中最多只能有一個public類。public后緊跟的是所定義類的名稱。Java要求public類的名稱與程序文件名一致,因此,本例為DisplayWindom.java文件。1/18/202576例題說明Java的Application必須要求有main()方法,該方法要求一個String[]類型的單一參數(shù),類型String[]是字符串列表的數(shù)組。圓括號后面的一對花括號是方法體。在本例的main()方法中,第6,7,8,9行的語句代碼段構成方法體。分號(;)是Java語言的語句結束符。當Java解釋器開始運行Application程序時,流程控制管理器就轉(zhuǎn)向執(zhí)行應用程序的main()方法,而main()中的語句是按順序執(zhí)行。因此,當程序DisplayWindom運行時,首先執(zhí)行第6行的語句,然后執(zhí)行第7行和第8行的語句。1/18/202577例題說明本例第7行和第8行是利用System.out表示從System類中選出out變量值。通過這個值,程序可以訪問顯示窗口的文字對象。這個對象被稱為輸出流.訪問System的一個成員out,程序使用點(.)把它從System中選出來,點是Java的選擇器機制。System是是java.lang包中的標準I/O類,它提供許多系統(tǒng)信息。用它編程者在與設備打交道的時,不用關心設備的底層操作細節(jié)1/18/202578Java語言的特點簡單易學●面向?qū)ο笾С址植际接嬎恪窨缙脚_健壯性●安全性強可移植●解釋執(zhí)行高性能●多線程Applet的特殊用途●動態(tài)性1/18/202579解決問題的求解過程軟件工程原理面向?qū)ο缶幊陶Z言的步驟1/18/202580解決問題的求解過程軟件工程原理分析設計編程測試維護1/18/202581解決問題的求解過程軟件工程原理:分析:與用戶交流,了解問題領域知識.并確定用戶的需求和目標。(做什么)設計:描述解決問題所需要的信息和方法。(怎樣做)1/18/202582解決問題的求解過程軟件工程原理:編程:寫出實現(xiàn)解決問題的程序代碼。(具體實現(xiàn))測試:對程序代碼,進行單元測試和集成測試。(實現(xiàn)周期)維護:交付使用后的不斷改錯,改進和完善.(終身服務)(反復迭代過程!)1/18/202583解決問題的求解過程面向?qū)ο缶幊陶Z言的步驟由用戶、業(yè)務專家和軟件開發(fā)者組成團隊問題的需求的描述確定類確定變量和方法確定系統(tǒng)的體系結構確定開發(fā)工具并編寫程序1/18/202584解決問題的求解過程自動取款機(ATM)軟件求解過程:需求描述確定類確定業(yè)務流程(變量和方法)確定用戶界面確定軟件最終的體系結構1/18/202585解決問題的求解過程ATM軟件求解過程:需求描述:顧客持卡取款.對使用ATM的事務都留記錄,每天報告.軟件有適當?shù)陌踩胧?暫時不考慮支付每個賬戶能同時在多個ATM上查詢和取款考慮未來擴展,增加出納點和網(wǎng)絡客戶機1/18/202586ATM軟件求解過程:需求描述限制:ATM軟件由銀行擁有ATM軟件在服務器中運行卡由銀行發(fā)行,并保留客戶信息ATM界面由銀行確定所有ATM的用戶界面相同1/18/202587ATM軟件求解過程:確定候選對象類:

Transaction事務(查賬,取款等)Session使用期Card取款卡DailyLog日志,ATM自動取款機1/18/202588ATM軟件求解過程:確定候選對象類:Cashier出納點NetCleint網(wǎng)絡客戶機ATMManager管理ATM軟件BankInfo銀行資料1/18/202589ATM軟件求解過程:確定對象類BankInfo

ATMManagerDailyLogSessionCard

Agent

ATMCashiesNet客戶Transaction111**1***1***11*1/18/202590ATM軟件求解過程:確定對象類屬性:ATMManager類屬性:adminPassword:String//系統(tǒng)管理員口令bankInfos:Container//銀行信息庫sessions:Container//使用期容器dailyLogs:Container//日志容器agents:Container//代理容器1/18/202591ATM軟件求解過程:確定對象類屬性:BankInfo類屬性:name:String//名字prefix:Integer//前綴serverName:String//服務器名字cards:Container//取款卡1/18/202592ATM軟件求解過程:確定對象類屬性:Card類屬性:number:Integer//編號name:String//名字accountName:Integer//賬號sessions:Session[*]//使用期變數(shù)據(jù)1/18/202593ATM軟件求解過程:確定對象類屬性:Session類屬性:startTime:Time//起始時間endTime:Time//結束時間card:Card//取款卡agent:Agent//代理//事務可變數(shù)組transactions:Transaction[*]1/18/202594ATM軟件求解過程:確定對象類屬性:Transaction類屬性:time:Time//時間content:String//內(nèi)容1/18/202595ATM軟件求解過程:確定對象類屬性:DailyLog類屬性:date:Date//日期sessions:Container//使用期容器1/18/202596ATM軟件求解過程:確定對象類屬性:Agent類屬性:id:String//標識符name:String//名字sessions:Container//使用期容器1/18/202597ATM軟件求解過程:確定對象類屬性:ATM類屬性:location:String//地點Cashier類屬性:String//分店名NetClient類屬性:url:URL//網(wǎng)站1/18/202598ATM軟件求解過程:確定對象類屬性:確定變量和方法:涉及對象:顧客(取款卡),ATM客戶機,ATM管理器,銀行.兩對C/S:ATM客戶機/ATM管理器ATM管理器/銀行銀行界面ATM管理器界面

1/18/202599ATM軟件求解過程:涉及到的變量:cardInfor卡信息account賬戶amount金額accountName賬戶名accountInfor賬戶信息receiver收款人1/18/2025100ATM軟件取款過程序列圖插入卡問口令鍵入口令選擇事務

問金額輸入金額提供現(xiàn)金ATM查證命令檢查賬號資料口令正確口令正確請求處理事務處理銀行事務事務完成數(shù)據(jù)記錄確認事務已完成

ATMManagerBank1/18/2025101ATM軟件求解過程:確定對象類屬性:確定變量和方法:ATMManager類中的方法://構造方法ATMManager()ATMManager(adminiPasswordString)1/18/2025102ATM軟件求解過程:確定對象類屬性:確定變量和方法:ATMManager類中的方法://注冊系統(tǒng)方法login(cardInfo:CardInfo)logout()1/18/2025103ATM軟件求解過程:確定對象類屬性:確定變量和方法:ATMManager類中的方法://訪問方法:getBankInfos():BankInfo[*]getSessions():Session[*]getDailyLogs():DailyLog[*]1/18/2025104ATM軟件求解過程:確定對象類屬性:確定變量和方法:ATMManager類中的方法:getAgents():Agent[*]addBankInfo(name:String):BankInforemoveBankInfo(name:String):BankInfoaddSession(startTime,card,agent)removeSession(session):Session1/18/2025105ATM軟件求解過程:確定對象類屬性:確定變量和方法:ATMManager類中的方法:

addDailyLog(date):DailyLogremoveDailyLog(date)addAgent(agent)removeAgent(id)

1/18/2025106ATM軟件求解過程:確定對象類屬性:確定變量和方法:BankInfo類中的方法:BankInfo(name,prefix,serverName)getName():StringgetServerName():String1/18/2025107ATM軟件求解過程:確定對象類屬性:確定變量和方法:BankInfo類中的方法:getCard():Card[*]addCard(number,name,accountNumberremoveCard(number)1/18/2025108ATM軟件求解過程:確定對象類屬性:確定變量和方法:BankInfo類中的方法:Card(number,name,accountNumber)getNumber()getName()1/18/2025109ATM軟件求解過程:確定對象類屬性:確定變量和方法:BankInfo類中的方法:getAccountNumber()getSessions()addSessions(session)1/18/2025110ATM軟件求解過程:確定對象類屬性:確定變量和方法:Session類中的方法:Session(startTime,card,agent)getStartTime()getEndTime()getCard()1/18/2025111ATM軟件求解過程:確定對象類屬性:確定變量和方法:Session類中的方法:

getAgent()getTransactions:Transaction[*]addSession(endTime)addTransaction(time,content)1/18/2025112ATM軟件求解過程:確定對象類屬性:確定變量和方法:Transaction類中的方法:

Transaction(time,content)getTime():TimegetContent():String1/18/2025113ATM軟件求解過程:確定對象類屬性:確定變量和方法:DailyLog類中的方法:DailyLog(date)//構造方法getDate()getSessions()addSession()1/18/2025114ATM軟件求解過程:確定對象類屬性:確定變量和方法:Agent類中的方法:(抽象類無構造方法)getId()getName()getSessions()addSession()1/18/2025115ATM軟件求解過程:確定對象類屬性:確定變量和方法:ATM類中的方法:ATM(id,name,location)//構造方法getLocation():String1/18/2025116ATM軟件求解過程:確定對象類屬性:確定變量和方法:Cashier類中的方法:Cashier(id,name,branch)//構造方法getBranch():String//獲取分店名1/18/2025117ATM軟件求解過程:確定用戶界面:銀行用戶界面:AccountMgrInf接口AccountInf接口AccountMgrImplAccountImpl管理實施實施1*1/18/2025118ATM軟件求解過程:確定用戶界面:銀行用戶界面AccountIF接口定義方法:getBalance():Float//提取結余//提取帳戶信息getAccountInfo():AccountInfo//提取賬戶歷史getHistory():String1/18/2025119ATM軟件求解過程:確定用戶界面:銀行用戶界面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軟件求解過程:確定用戶界面:銀行用戶界面AccountMgrIF接口方法:login(accountInfo:AccountInf):AccountIFlogout(account:AccountIF):

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論