startUML UML類圖基本使用教程.;六種UML線的含義和區別;UML類圖變爲Java/c/c++代碼

一、安裝starUML,自行下載

二、創建新項目.

1. 左上角File–New Project File By Approach

2. 選擇 空項目 Empty Project

在這裏插入圖片描述

三、創建模型

1 .左上角 Model – Add–Model

同樣也可以找到你新建的項目,右鍵–Add-- Model
在這裏插入圖片描述

四、在新建的Model(NewModel)裏添加類圖(相當於畫布)

1. NewModel – 右鍵 – Add Diagram–Class Diagram.

2.你就可以看到主要的視圖出現了

在這裏插入圖片描述

五、如何畫類圖??(這裏用一個例子來做舉例)

1.新建一個Circle類。

左側點擊Class,然後再主畫圖區單擊創建新的類圖,改名爲Circle。
右鍵–Add–Attribute新建變量,輸入如

-_radius: int
  1. (-)減號表示,私有類型
  2. (_radius)是變量名
  3. (: ) 冒號加空格後接數據類型int
    你也可在右下方單獨設置。
    在這裏插入圖片描述

2. 使用和1 同樣的方法新建一個Rectangel類,矩形,並定義一個變量_width 寬和 _height 高

在這裏插入圖片描述

3. 新建一個接口 Shape

1.點擊左邊工具欄的 interface 接口,然後再畫圖中心單擊(或者拉動) 然後改名爲 Shape
2. 點擊左邊的選擇,選擇新建的接口Shape然後,再視圖區設置它的形狀stereotype Display 爲 null ,並去掉隱藏變量 suppress attribute 和 隱藏方法 suppress Opreation.
在這裏插入圖片描述

4. 給接口新建一個getArea()抽象方法。返回值爲int

  1. 選擇接口,右鍵-- Add —Opreation
  2. 設置方法
+getArea(): double
  1. 右側的Genneral框中勾 IsAbstract抽象方法,這時 方法會變爲斜體,
  2. 選擇單擊 Shape ,把Genneral的 IsAbstract 勾上,這樣接口也是抽象的了。
    在這裏插入圖片描述

5. 添加 類Circle 和 Rectangle實現 Shape接口的線

  1. 左側選擇實現接口,Realization 的線,點擊Circle類,拖拽到 Shape類上面實現接口,
  2. 用同樣的方法Rectangle類實現接口。
    在這裏插入圖片描述
  3. 如果覺得不夠美觀,選擇,框選所有的類和接口,右鍵–fomart–LineStyle–RectLineer設置爲方形的線。

5. 實現接口的方法,

1.複製接口的方法,Model Explore 區,找到 getArea() 右鍵單擊,copy 然後到合適的 類的目錄下,粘貼。
2. 此時的方法依舊是抽象斜體的,我們點擊剛複製來的方法,看到右下方的General框,把IsAbstract 抽象去掉,
你的最終圖形應該爲
在這裏插入圖片描述
目前你已經完成了基本的實現接口的類圖,繼承和這個類似,下面介紹如何添加聚合關係

六、如何添加關係?1.先了解幾種基本的 關係

  1. 依賴Dependency: 耦合最弱的關係,臨時的關聯,在代碼中,某個類的方法通過局部變量(new Students())、方法的參數student.getAge()或者對靜態方法Student.name的調用來訪問另一個類(被依賴類)中的某些方法來完成一些職責。
    虛線
    在這裏插入圖片描述

  2. 關聯Association:
    實線
    在這裏插入圖片描述

  3. 聚合Aggregation: 是關聯的一種,強關聯,has-a關係,比如 大學有一個老師University has-a Teacher

has-a關係
菱形指向整體

在這裏插入圖片描述

  1. 組合Composition: 關聯的一種,更強的聚合,頭包含一個嘴Head contains-a Mouth,
contains-a 關係
黑色菱形指向整體

在這裏插入圖片描述

  1. 泛化繼承Generalization: 耦合度最大學生是一個人Student is-a Person
is-a 關係
子類實線三角指向父類**

在這裏插入圖片描述
6. 實現 Realization,實現接口,

虛線三角指向接口

在這裏插入圖片描述

七、實現一個聚合 has-a 的關係實例

1. 左邊找到 聚合白色菱形 Aggregation 單擊,由於(菱形指向整體)所以重 Shape 接口 拖拽到 Pizza 類,

2. Pizza has-a Shape,因此,點擊選擇,點擊聚合Aggregation線條,雙擊把線條的名字該爲 has-a

3.點擊線條,把General區域的 ,代表Pizza的General(End 2) 的name 改爲 新增爲 pizza

4. 點擊線條,把General區域的 ,代表Shape的General(End 1) 的name 改爲 新增爲 shape

在這裏插入圖片描述

效果圖:
在這裏插入圖片描述

八、最後給3類添加都一個構造函數

1.比如Circle的構造函數:

public Circle(int radius){}

類圖裏的寫法爲.

+ Circle(radius: int)

2。同理寫出 Rectangle 和 Pizza的構造方法

最終結果如圖
在這裏插入圖片描述

九、將類圖轉化爲Java代碼

1.打開 java 的解析器

點擊Model模型–Profiles解析器–Java移動到右邊即可(如圖成功)
(點擊左邊的Java,再點擊include,就可以了)
在這裏插入圖片描述

3。保存

ctrl+s保存到合適的目錄

. 生成Java代碼

  1. 點擊菜單工具Tool–Java–Generate Code生成代碼
  2. 選擇你想要生成代碼的的UML類圖,
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述

在這裏插入圖片描述
效果:
Circle.java

//
//
//  Generated by StarUML(tm) Java Add-In
//
//  @ Project : Untitled
//  @ File Name : Circle.java
//  @ Date : 2020/5/7
//  @ Author : 
//
//




public class Circle implements Shape {
	private int _radius;
	public void Circle(int radius) {
	
	}
	
	public double getArea() {
	
	}
	
	public double getArea();
}

Rectangle.java

//
//
//  Generated by StarUML(tm) Java Add-In
//
//  @ Project : Untitled
//  @ File Name : Rectangle.java
//  @ Date : 2020/5/7
//  @ Author : 
//
//




public class Rectangle implements Shape {
	private int _width;
	private int _height;
	public void Rectangle(int width, int height) {
	
	}
	
	public double getArea() {
	
	}
	
	public double getArea();
}

Shape.java

//
//
//  Generated by StarUML(tm) Java Add-In
//
//  @ Project : Untitled
//  @ File Name : Shape.java
//  @ Date : 2020/5/7
//  @ Author : 
//
//




public interface Shape {
	public Pizza pizza;
	public abstract double getArea();
}

Pizza.java

//
//
//  Generated by StarUML(tm) Java Add-In
//
//  @ Project : Untitled
//  @ File Name : Pizza.java
//  @ Date : 2020/5/7
//  @ Author : 
//
//




public class Pizza {
	private double _price;
	public Shape shape;
	public double getPrice() {
	
	}
	
	public void Pizza(Object price double, Object shape Shape) {
	
	}
}

問題:構造函數沒有成功???待解決

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章