java编写book雷他的UML类图_打开UML类图的正确姿势

统一用例方法 uml与敏捷需求实践张

63.2元

(需用券)

去购买 >

5098ec2eab8086c63ed6b0e2d5ec5bd5.png

UML(Unified Modeling Language) 统一建模语言,又称标准建模语言。是用来对软件密集系统进行可视化建模的一种语言。UML的定义包括UML语义和UML表示法两个元素。UML是在开发阶段,说明、可视化、构建和书写一个面向对象软件密集系统的制品的开放方法。最佳的应用是工程实践,对大规模,复杂系统进行建模方面,特别是在软件架构层次,已经被验证有效。统一建模语言(UML)是一种模型化语言。模型大多以图表的方式表现出来。一份典型的建模图表通常包含几个块或框,连接线和作为模型附加信息之用的文本。这些虽简单却非常重要,在UML规则中相互联系和扩展。

以上内容来自百度百科。

推荐一个绘图和学习的在线工具ProcessOn

UML类图,属于UML图中的一种,是在面向对象语言用中用来表示一个类的图形,基本的UML类图如下所示:

4cd25c6cc923d025d3f8ce07a70989ed.png

类简单表示:

如上图,就表示一个类,三个格子从上至下分别表示:

类名(如果是接口,就使用斜体表示)

类的特性(一般是类的字段和属性,可没有这一行)

类的操作(一般是类的方法或行为)

它们前边的符号有以下几类:“+”表示public,“-”表示private,“#”表示protected

即最上边的UML类图表示代码如下:

public class Student {

private String name;

private String sex;

private int age;

public void study() {

System.out.println("study");

}

protected void sleep() {

System.out.println("sleep");

}

public void eat() {

System.out.println("eat");

}

//get 和set方法和这个类的属性无关

}

类的关系表示:

继承关系(空心三角形加实线表示)

6d5441ce25cff409cbefd98876eb0f88.png

public class SeniorSchool extends Student {

public void graduate() {

System.out.println("毕业");

}

public void cllegeEntranceExam() {

System.out.println("高考");

}

}

实现接口(空心三角形加虚线表示)

8462f1c90ab2706949a57c09fb8d5954.png

让高三学再实现玩这个接口

public interface Play {

void play();

}

public class SeniorSchool extends Student implements Play {

public void graduate() {

System.out.println("毕业");

}

public void cllegeEntranceExam() {

System.out.println("高考");

}

//实现接口方法

@Override

public void play() {

System.out.println("高三学生玩");

}

}

依赖关系(用虚线箭头表示)

所谓依赖关系,就是构造这个类的时候,可以依赖其他的类。比如:人类依赖水和空气,学生也是人类,所以如下

5a9a29ddf9dcc426012b3398566d14d0.png

Student有一个构造方法如下:

/**

* Student的一个构造方法

* 依赖于Air 和 Water

*

* @param air

* @param water

*/

public Student(Air air, Water water) {

}

关联关系(使用实线箭头表示)

所谓关联关系,其实就是这个类有一个属性是其他类,如下图和代码。

8cca6b50795ad6071858f50083383b95.png

宿舍类

public class Dormitory {

private String num;

}

高一学生类

public class PrimaryStudent extends Student {

private Dormitory dormitory;

}

注意它和依赖关系的区别,有很多小伙伴很容易理解为这才是依赖关系

聚合关系(使用空心菱形和实线箭头表示)

d7e43af3db38e7554de34671410871aa.png

直接看代码,一目了然,学校中有很多学生就是一个聚合关系。说这个学校可能是有些难以被接受,如果是用学生群来表示可能会更容易理解

public class School {

private Student[] students;

}

合成(组合)关系(用实心菱形和实线箭头表示)

它表示的是一种强‘拥有’关系,和之前的依赖与关联有很大的相似,就比如Stuent类中的这个name,sex,age属性,它就是一种组合关系,它们是一个Student类的组成,因为在初始化一个Student对象时,这三个就必须有。虽然这三个的类型是一个基本类型,如果是一个类的话就更好理解了,但是“万物皆对象”,也是可以勉强理解的。

为了更好的理解,我们就给Student这个类一个组合关系的Book类。

63c2f9b3671e503584640759ff047206.png

public class Student {

private Book book;

public Student(Book book) {

this.book = book;

}

}

欢迎关注我的微信公众号“小鱼与Java”,

最后再贴上整个图:

1d3d530969d86dabba38f92f746ae472.png

原文链接:https://www.cnblogs.com/Lyn4ever/p/12319667.html

java 11官方入门(第8版)教材

79.84元

包邮

(需用券)

去购买 >

f0f3f55624fb396b1764d42d6df88864.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值