UML類(lèi)圖設(shè)計(jì)在Java程序中的應(yīng)用
本節(jié)和大家一起學(xué)習(xí)一下如何利用UML類(lèi)圖設(shè)計(jì)Java應(yīng)用程序,這里使用Java控制臺(tái)窗口顯示程序運(yùn)行結(jié)果,該程序總共由10個(gè)大類(lèi)組成,這里主要介紹Point類(lèi)和CGrid類(lèi)兩部分。希望本節(jié)的學(xué)習(xí)你對(duì)有所幫助。
UML類(lèi)圖設(shè)計(jì)Java應(yīng)用程序
UML已成為面向?qū)ο笤O(shè)計(jì)的標(biāo)準(zhǔn)圖形化工具,在UML定義的各種圖中,本文只涉及類(lèi)圖。Java應(yīng)用程序由許多類(lèi)所構(gòu)成,類(lèi)圖的設(shè)計(jì)與實(shí)現(xiàn),是Java實(shí)現(xiàn)面向?qū)ο髴?yīng)用程序的核心。本文通過(guò)一個(gè)具體的應(yīng)用程序的設(shè)計(jì)與實(shí)現(xiàn)過(guò)程,詳細(xì)說(shuō)明了利用UML類(lèi)圖設(shè)計(jì)Java應(yīng)用程序,使得開(kāi)發(fā)過(guò)程標(biāo)準(zhǔn)化、可視化,代碼編程簡(jiǎn)單化。
在類(lèi)圖中,類(lèi)被描述為帶有三層的盒子。
頂層為類(lèi)名,一般用加粗字體表示。如果類(lèi)是抽象的,其名稱(chēng)用斜體表示;如果類(lèi)是接口,則在類(lèi)名上方標(biāo)注<<interface>>。
中間層包含類(lèi)的屬性(或變量),底層包含類(lèi)的方法。與類(lèi)名相似,如果方法是抽象的,那么它的名稱(chēng)也用斜體表示。
我們要設(shè)計(jì)的應(yīng)用程序CDrawApp應(yīng)用程序在基于字符的網(wǎng)格上畫(huà)點(diǎn)、框和文本串,該應(yīng)用程序涉及到Java面向?qū)ο蟮脑S多概念與應(yīng)用方法,非常系統(tǒng)、全面,在您仔細(xì)研讀后,定能迅速掌握UML類(lèi)圖設(shè)計(jì),并將其應(yīng)用到實(shí)際的Java應(yīng)用程序開(kāi)發(fā)過(guò)程中。為減少代碼長(zhǎng)度,讓程序簡(jiǎn)單易懂,這里使用Java控制臺(tái)窗口顯示程序運(yùn)行結(jié)果。該程序總共由10個(gè)大類(lèi)組成,以下分別介紹。
一、Point類(lèi)
在CDrawApp程序中定義的第一個(gè)類(lèi)是Point類(lèi),該類(lèi)用于通過(guò)x和y坐標(biāo)在網(wǎng)格上標(biāo)識(shí)一點(diǎn)。其類(lèi)圖設(shè)計(jì)為:
在該類(lèi)中,有2個(gè)成員變量x和y,類(lèi)圖中,“-”表示變量或方法為private,“+”表示public,“#”則表示protected。該類(lèi)定義了三個(gè)不同的構(gòu)造函數(shù),這是重載(overload)的例子。
接著該類(lèi)設(shè)計(jì)了7個(gè)訪(fǎng)問(wèn)方法。getX()和getY()方法分別返回一點(diǎn)的x和y坐標(biāo)。SetX()和setY()方法根據(jù)參數(shù)xValue和yValue的值設(shè)置這些坐標(biāo)的值。兩個(gè)add()方法通過(guò)被訪(fǎng)問(wèn)點(diǎn)的坐標(biāo)加上一個(gè)值來(lái)建立一個(gè)新的Point對(duì)象。New運(yùn)算符建立類(lèi)的新實(shí)例。它后面緊跟著初始化新生成實(shí)例的構(gòu)造函數(shù)。toString()方法返回類(lèi)String的一個(gè)對(duì)象,該對(duì)象用一個(gè)有序?qū)?lái)描述一個(gè)點(diǎn)。
二、CGrid類(lèi)
UML類(lèi)圖設(shè)計(jì)中CGrid類(lèi)用于定義指定大小的字符網(wǎng)格。它提供基本方法集,通過(guò)加入到這些方法中的其它類(lèi)來(lái)得到擴(kuò)展。該類(lèi)的類(lèi)圖為:
CGrid類(lèi)聲明3個(gè)變量:width、depth和grid[][]。width和depth變量用于指定grid[][]的水平和垂直尺寸,grid[][]是保存網(wǎng)格字符的字符數(shù)組的數(shù)組。
CGrid中的變量聲明為protected,這就規(guī)定了它們只能在聲明它們的包中和CGrid的任何子類(lèi)中訪(fǎng)問(wèn)。
CGrid類(lèi)只有一個(gè)單一構(gòu)造函數(shù),它設(shè)置width和depth的值,分配grid[][]數(shù)組,然后調(diào)用blankGrid()以空格為grid[][]賦值。
CGrid有4種訪(fǎng)問(wèn)方法。blankGrid()方法只是簡(jiǎn)單地用空格字符來(lái)調(diào)用
fillGrid()。fillGrid()方法把grid[][]的每個(gè)元素都設(shè)置為ch參數(shù)。GetCharFrom()方法用于找出網(wǎng)格中給定位置的字符。SetCharAt()用于把網(wǎng)格中一點(diǎn)設(shè)置成特定字符。
在GetCharFrom()和SetCharAt()方法中使用Point類(lèi)來(lái)定義它們的參數(shù),這是類(lèi)與類(lèi)之間關(guān)聯(lián)的例子,我們稍候討論。
【編輯推薦】
- UML類(lèi)圖設(shè)計(jì)Java應(yīng)用程序 Point和CGrid兩大類(lèi)詳解
- 利用UML類(lèi)圖設(shè)計(jì)Java應(yīng)用程序詳解
- UML中各種UML圖形的建立步驟簡(jiǎn)明介紹
- 教你繪制整潔的UML圖
- UML類(lèi)圖設(shè)計(jì)中常用元素及關(guān)系詳解