国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

用UML描述Java類

2019-11-17 04:53:31
字體:
來源:轉載
供稿:網友
java程序員的角度闡述UML和對象建模問題,是一個深入淺出的實用性介紹。雖然從歷史和基本理念方面來探討UML非常吸引人,但我們還是直接從Java代碼開始,看看UML如何描述Java類,再在敘述過程中插入一些歷史和基本理念方面的知識。

UML類圖

在Java中,我們用下面的代碼聲明兩個公用類,每一個Java類放入一個文件,文件的名字就是Java類的名字加上擴展名.java:public class Person{}

public class Organization{} UML是Unified Modeling Language的縮寫,即“統一建模語言”。與Java不同,UML是一種圖形化的建模“語言”,它用一個矩形來表示一個類,在矩形的內部寫上類的名稱,一個類圖可以放入多個類。用矩形表示類,是UML中U(Unified)起的作用。在UML的第一個版本出現,每一個對象建模專家都有自己的一套符號,一些人用點表示類,一些人用圓圈表示類,還有一些人用圓角矩形表示類。顯然,這很輕易引起混亂。后來,Rational公司的三個專家——Grady Booch、James Raumbaugh、Ivar Jacobson達成了一致意見,同意“統一”他們各自使用的符號,UML終于創立,符號之爭也終于落下了帷幕。圖一就是上面兩個Java類的UML類圖:

用UML描述Java類(圖一)圖一 有二個類的簡單類圖假如要描述一系列類的內部結構以及它們相互之間的關系,UML類圖是非常有用的。例如,在許多書籍中,我們可以看到作者用類圖來描述各個類之間的關系。

顯然,空的類沒有什么實際意義。我們要為Person類加上一些實例變量和簡單的方法。下面是Person類的代碼,已經過簡化處理,不含任何注釋: public class Person {

PRivate String name;

private String socialSecurityNumber;

private Date dateOfBirth;

private String emailAddress;

public String getName() { return name; }

public void setName(String name) { this.name = name; }

public String getSocialSecurityNumber()

{ return socialSecurityNumber; }

public void setSocialSecurityNumber(String socialSecurityNumber)

{ this.socialSecurityNumber = socialSecurityNumber; }

public Date getDateOfBirth() { return dateOfBirth; }

public void setDateOfBirth(Date dateOfBirth)

{ this.dateOfBirth = dateOfBirth; }

public int calcAgeInYears()

{/*not implemented yet*/return 0;}

} 圖二顯示了Person類的UML圖。可以看到,UML用“+”和“-”符號分別表示public和private修飾符。UML只顯示操作和屬性類型之類的特征信息,操作的結果在行未的冒號之后聲明。
用UML描述Java類(圖二)

圖二 在UML類圖中描述屬性和方法


由于UML類圖不包含方法的具體實現,所以在UML類圖中查看屬性和方法等基本信息要比直接查看Java源代碼更方便一些。在創建UML圖時,人們經常忽略或隱藏各種細節信息,以便查看和把握類的整體結構。例如,UML類圖經常只顯示出屬性和操作的名稱,簡單的訪問器方法(諸如getXXX()、setXXX()之類的方法)也經常不顯示出來。圖三就是簡化圖二得到的結果。

用UML描述Java類(圖三)

圖三 經過簡化的Person類UML圖
圖三清楚地顯示出了Person類主要的屬性和方法。但是,單個類的UML圖還不是很有用。只有包含多個類且描述了多個類之間關系的UML圖,才具有實用意義。UML用兩個類之間的連線來表示兩者之間的關系,不同的線型表示不同的關系,在UML類圖中最常見的關系是關聯關系。

關聯關系前面Person類的屬性都是簡單類型(Primitive Type),或者說是Java直接提供的標準類型?,F在來考慮下面的代碼片斷,它增加了一個對Organization實例的引用:
public class Person {...

private Organization employer;

...

}


引用的名稱是employer,意味著這里的Organization代表著Person的雇主。圖四顯示了如何在UML中描述這種關系: 用UML描述Java類(圖四)

圖四 兩個類之間的關聯關系兩個類之間的連線表示Person類對Organization類有一種依靠關系。這條線是一條實線(而不是虛線),表示這種依靠關系是一種關聯。
如有必要,關聯關系可顯示出角色、多重性、關聯方向等屬性。圖四的關聯關系顯示出Organization對象在該關系中是雇主的角色,“0..1”表示每一個Person類的對象最多和一個Organization類的對象有關系,也可能和0個Organization對象有關系(即Person對Organization的引用可設置為null)。開叉的箭頭表示Person類擁有對Organization的引用,而不是Organization擁有對Person的引用。Java程序員的角度闡述UML和對象建模問題,是一個深入淺出的實用性介紹。雖然從歷史和基本理念方面來探討UML非常吸引人,但我們還是直接從Java代碼開始,看看UML如何描述Java類,再在敘述過程中插入一些歷史和基本理念方面的知識。

UML類圖

在Java中,我們用下面的代碼聲明兩個公用類,每一個Java類放入一個文件,文件的名字就是Java類的名字加上擴展名.java:public class Person{}

public class Organization{} UML是Unified Modeling Language的縮寫,即“統一建模語言”。與Java不同,UML是一種圖形化的建?!罢Z言”,它用一個矩形來表示一個類,在矩形的內部寫上類的名稱,一個類圖可以放入多個類。用矩形表示類,是UML中U(Unified)起的作用。在UML的第一個版本出現,每一個對象建模專家都有自己的一套符號,一些人用點表示類,一些人用圓圈表示類,還有一些人用圓角矩形表示類。顯然,這很輕易引起混亂。后來,Rational公司的三個專家——Grady Booch、James Raumbaugh、Ivar Jacobson達成了一致意見,同意“統一”他們各自使用的符號,UML終于創立,符號之爭也終于落下了帷幕。圖一就是上面兩個Java類的UML類圖:

用UML描述Java類(圖一)圖一 有二個類的簡單類圖假如要描述一系列類的內部結構以及它們相互之間的關系,UML類圖是非常有用的。例如,在許多書籍中,我們可以看到作者用類圖來描述各個類之間的關系。

顯然,空的類沒有什么實際意義。我們要為Person類加上一些實例變量和簡單的方法。下面是Person類的代碼,已經過簡化處理,不含任何注釋: public class Person {

private String name;

private String socialSecurityNumber;

private Date dateOfBirth;

private String emailAddress;

public String getName() { return name; }

public void setName(String name) { this.name = name; }

public String getSocialSecurityNumber()

{ return socialSecurityNumber; }

public void setSocialSecurityNumber(String socialSecurityNumber)

{ this.socialSecurityNumber = socialSecurityNumber; }

public Date getDateOfBirth() { return dateOfBirth; }

public void setDateOfBirth(Date dateOfBirth)

{ this.dateOfBirth = dateOfBirth; }

public int calcAgeInYears()

{/*not implemented yet*/return 0;}

} 圖二顯示了Person類的UML圖??梢钥吹剑琔ML用“+”和“-”符號分別表示public和private修飾符。UML只顯示操作和屬性類型之類的特征信息,操作的結果在行未的冒號之后聲明。
用UML描述Java類(圖二)

圖二 在UML類圖中描述屬性和方法


由于UML類圖不包含方法的具體實現,所以在UML類圖中查看屬性和方法等基本信息要比直接查看Java源代碼更方便一些。在創建UML圖時,人們經常忽略或隱藏各種細節信息,以便查看和把握類的整體結構。例如,UML類圖經常只顯示出屬性和操作的名稱,簡單的訪問器方法(諸如getXXX()、setXXX()之類的方法)也經常不顯示出來。圖三就是簡化圖二得到的結果。

用UML描述Java類(圖三)

圖三 經過簡化的Person類UML圖
圖三清楚地顯示出了Person類主要的屬性和方法。但是,單個類的UML圖還不是很有用。只有包含多個類且描述了多個類之間關系的UML圖,才具有實用意義。UML用兩個類之間的連線來表示兩者之間的關系,不同的線型表示不同的關系,在UML類圖中最常見的關系是關聯關系。

關聯關系前面Person類的屬性都是簡單類型(Primitive Type),或者說是Java直接提供的標準類型?,F在來考慮下面的代碼片斷,它增加了一個對Organization實例的引用:
public class Person {...

private Organization employer;

...

}


引用的名稱是employer,意味著這里的Organization代表著Person的雇主。圖四顯示了如何在UML中描述這種關系: 用UML描述Java類(圖四)

圖四 兩個類之間的關聯關系兩個類之間的連線表示Person類對Organization類有一種依靠關系。這條線是一條實線(而不是虛線),表示這種依靠關系是一種關聯。
如有必要,關聯關系可顯示出角色、多重性、關聯方向等屬性。圖四的關聯關系顯示出Organization對象在該關系中是雇主的角色,“0..1”表示每一個Person類的對象最多和一個Organization類的對象有關系,也可能和0個Organization對象有關系(即Person對Organization的引用可設置為null)。開叉的箭頭表示Person類擁有對Organization的引用,而不是Organization擁有對Person的引用。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 柳州市| 神木县| 浦城县| 台江县| 阿拉尔市| 马尔康县| 开封市| 鄯善县| 南靖县| 西宁市| 余干县| 社旗县| 红河县| 大同市| 新巴尔虎左旗| 朝阳区| 安徽省| 游戏| 邵武市| 旬阳县| 枣阳市| 牙克石市| 布拖县| 南和县| 华容县| 望都县| 肃宁县| 长兴县| 荆州市| 左贡县| 富蕴县| 大方县| 临漳县| 绵阳市| 百色市| 富裕县| 贵港市| 菏泽市| 乐亭县| 营口市| 苍梧县|