startUML UML类图基本使用教程.;六种UML线的含义和区别;UML类图变为Java/c/c++代码,startUML的注释,
·
一、安装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
- (-)减号表示,私有类型
- (_radius)是变量名
- (: ) 冒号加空格后接数据类型int
你也可在右下方单独设置。
2. 使用和1 同样的方法新建一个Rectangel类,矩形,并定义一个变量_width 宽和 _height 高
3. 新建一个接口 Shape
1.点击左边工具栏的 interface 接口,然后再画图中心单击(或者拉动) 然后改名为 Shape
2. 点击左边的选择,选择新建的接口Shape然后,再视图区设置它的形状stereotype Display 为 null ,并去掉隐藏变量 suppress attribute 和 隐藏方法 suppress Opreation.
4. 给接口新建一个getArea()抽象方法。返回值为int
- 选择接口,右键-- Add —Opreation
- 设置方法
+getArea(): double
- 右侧的Genneral框中勾 IsAbstract抽象方法,这时 方法会变为斜体,
- 选择单击 Shape ,把Genneral的 IsAbstract 勾上,这样接口也是抽象的了。
5. 添加 类Circle 和 Rectangle实现 Shape接口的线
- 左侧选择实现接口,Realization 的线,点击Circle类,拖拽到 Shape类上面实现接口,
- 用同样的方法Rectangle类实现接口。
- 如果觉得不够美观,选择,框选所有的类和接口,右键–fomart–LineStyle–RectLineer设置为方形的线。
5. 实现接口的方法,
1.复制接口的方法,Model Explore 区,找到 getArea() 右键单击,copy 然后到合适的 类的目录下,粘贴。
2. 此时的方法依旧是抽象斜体的,我们点击刚复制来的方法,看到右下方的General框,把IsAbstract 抽象去掉,
你的最终图形应该为
目前你已经完成了基本的实现接口的类图,继承和这个类似,下面介绍如何添加聚合关系
六、如何添加关系?1.先了解UML 类图简单入门使用教程(基本组成,关系,代码实例,案例分析
七、实现一个聚合 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代码
- 点击菜单工具Tool–Java–Generate Code生成代码
- 选择你想要生成代码的的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) {
}
}
问题:构造函数没有成功???待解决
拓展:startUML的注释,
左边的toolbox的上面有一个 Annotation注释,点击打开就行
更多推荐
已为社区贡献6条内容
所有评论(0)