手把手教你使用start uml画类图

在画类图之前,首先得了解类与类之间的关系,刚开始也是知道类与类之间就是继承啊,什么聚合 关联,自关联等,都不太懂,其实也不是不懂,是平时不知道这些名词,但我们在写代码中无时无刻在使用到了,如果是面试,肯定要被面试官鄙视了,哈哈,现在就类与类之间的关系大致分为如下几种

1:依赖(Dependency)

2:泛化(Generalization)

3:实现(Realization)

4:关联(Association)

5:聚合(aggregation)

6:组合(combination)

现在一一对这6个进行概念性的分析并利用类图去展示

A:依赖

类一方的改动将引起另一方的变动。这是一种典型的临时关系,代表了类之间的一种短暂的交互。依赖关系在 Java 语言中体现为局部变量、方法的参数或者对静态方法的调用

代码体现:

Person.java

public class Person {
      public String getContent(String name){
     String result = "您的名字是";
     if(name!=null&&!"".equals(name)){
     return result+name;
     }
return "";
      }
}

Test.java

public class Test {
public static void main(String[] args) {
Person p = new Person();
String name = p.getContent("狗");
System.out.println(name);
}
}

类图表示:


也就是说在Test类中获取到Person对象后 你要去调用getContent()方法并且这个方法必须要传递一个参数,不传递就报错,并且这个方法中还依赖了一个局部变量,所以说Test类是依赖Perosn类,否则无法运行!

B:泛化

泛化定义了一般元素和特殊元素之间的分类关系,如果从面向对象程序设计语言的角度来说,类与类之间的泛化关系就是平常所说的类之间的继承关系。如人与男人和女人的关系,比如人有眼睛  年龄  名字,那么男人和女人都是有这些属性的,所以不必去重新定义这些属性,只要继承Person类就相当于有了这些数据,

代码体现:

public class Animal {
public int age;//动物年龄
public String sex ;//性别

public void call(){
System.out.println("动物叫");
}
public void eat(){
System.out.println("动物吃");
}
}

Dog.java

public class Dog extends Animal {

}

Cat.java

public class Cat extends Animal {
    
}

测试类Test

public class Test {
public static void main(String[] args) {
Dog dog = new Dog();
dog.call();
Cat cat = new Cat();
cat.eat();
}
}

uml图如下:


C:实现

实现是一种类与接口的关系, 表示类是接口所有特征和行为的实现,一般都是几个类的行为都有共性,或者约定的一般定义一个接口,子子类去实现

代码体现:

HttpBase.java

public interface HttpBase {
public void get();
public void post();
}

HttpClientGet.java

public class HttpClientGet implements HttpBase {
@Override
public void get() {


}
@Override
public void post() {


}
}

HttpClientPost.java

public class HttpClientPost implements HttpBase {
@Override
public void get() {


}
@Override
public void post() {


}
}

类图如下:


D:关联

关联关系是类与类之间的联结,它使一个类知道另一个类的属性和方法 ,关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。在 Java 中,关联关系是通过使用成员变量来实现的。 如人与车

关联有单向关联和双向关联

单向关联:就是自己的类中有引入自己的类引用变量,这个单例模式就是一个很好的例子

双向关联:就是一个类中的成员变量有一个有另一个类的引用,所以才可以获取到另一个类的方法

代码体现:

A.java

public class A {
     String name;
     int age;
     B b;
     public void print(){
    System.out.println("我是A中的方法");
    b.back();
     }
public void setB(B b) {
this.b = b;
}
}

B.java

public class B {
public void back(){
System.out.println("谁调用了我 哈哈");
}
}

Test.java

public class Test {
public static void main(String[] args) {
A a = new A();
a.setB(new B());
a.print();
}
}

类图:


E:聚合


### 使用 PlantUML 绘制 UML #### 工具准备 为了能够顺利使用 PlantUML 来绘制 UML 表,需先准备好必要的软件环境。对于不同开发平台有不同的配置方式: - **IDEA 配置**:在 IDEA 中可以通过安装特定插件来实现 PlantUML 的集成和支持[^2]。 - **VSCode 配置**:同样可以在 VSCode 上通过安装相应的 PlantUML 插件完成相同的功能,并且需要确保 Java 和 Graphviz 环境已正确设置[^3]。 无论哪种编辑器,都需要提前下载并安装好 Graphviz 软件,因为这是渲染表所必需的基础工具之一。 #### 创建 UML 文件 一旦完成了上述准备工作,在选定的 IDE 或者文本编辑器内新建一个 `.puml` 后缀名的文件用于编写 PlantUML 语句。此文件即为后续用来定义各个及其相互间关系的地方。 #### 声明基本结构 下面是一段简单的例子展示如何用 PlantUML 定义两个具有继承关系的 `Animal` 和 `Dog`: ```plantuml @startuml class Animal { +String name +void eat() } class Dog extends Animal { +void bark() } @enduml ``` 这段代码表示创建了一个名为 "Animal" 的父以及它的子 "Dog"[^1]。 #### 添加更多细节 除了基础属性和方法外,还可以进一步细化模型中的其他组成部分,比如关联、聚合、组合等形式的关系表达;也可以加入注解说明某些特殊之处。例如: ```plantuml @startuml ' 注释部分 note as N1 这是一个关于动物行为的例子. end note ' 关联关系 Animal --> Food : eats ' 泛化(继承)关系已经体现在上面的例子中了 @enduml ``` 以上就是基于 PlantUML 进行 UML 绘制的一个简要介绍过程。希望这些信息能帮助到想要学习这项技能的朋友。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值