idea uml图各符号含义_java利器之UML类图详解(IDEA)
一、概述
类图(Class Diagram)是面向对象系统建模中最常用和最重要的图,是定义其它图的基础。
类图主要是用来显示系统中的类、接口以及它们之间的静态结构和关系的一种静态模型。
类图不仅用于可视化描述和记录系统的不同方面,也为构建可执行代码的软件应用程序。
类图描述一类的属性和操作,也对系统的约束。被广泛应用于类图的建模的面向对象的系统中,因为它们是唯一的,可以直接映射到面向对象的语言的 UML 图。
类图显示集合的类,接口,关联,协作和约束,它也被称为作为结构图。
二、类的UML表示
1. 类图(ClassDiagram)
idea类图示意图
2. 类图对应java实例
public class ClassDiagramDemo{
public int id;
protected String name;
int age;
private String password;
public void setId(int id){
this.id = id;
}
protected void setName(String name){
this.name = name;
}
void setAge(int age){
this.age = age;
}
private void setPassword(String password){
this.password = password;
}
}
3. 注意
实际类图中"可见性"表示该属性对于类外的元素而言是否可见,包括公有(public)、私有(private),友好的(friendly,代表package)和受保护(protected)三种,在类图中分别用符号+、-,~和#表示。
三、类之间的关系
1. 依赖关系(Dependence)
定义:只要在类中用到了对方,那么他们之间就存在依赖关系。如果没有对方,连编译都通过不了。
依赖关系
public class PersonServiceBean{
private PersonDao personDao;
public void Save(Person person){}
public IDCard getIDCard(int personid){return null;}
public void modify(){
Department department = new Department();
}
}
class IDCard{
}
class Person{
}
class PersonDao{
}
class Department{
}
小结:
类中用到了对方
类中的成员属性
方法的返回类型
方法接收的参数类型
方法中有使用到
2. 泛化关系(Generalization)
定义:泛化关系实际上就是继承关系,它是依赖关系的一种特例。
泛化关系
public class A{
}
public class B extends A{
}
小结:
泛化关系即继承关系
如果B继承了A,则A和B之间存在泛化关系
3. 实现关系(Implementation)
定义:实现关系实际上就是A类实现B类,它是依赖关系的特例。
实现关系
public interface Service{
}
public class ServiceImpl implements Service{
}
小结:如果B实现了A,则A和B之间存在实现关系
4. 关联关系(Association)
定义:关联关系实际上就是类与类之间的联系,它是依赖关系的特例。存在单向关联,双向关联和自关联。
单向关联
定义:类A与类B是单向关联关系,是指类A包含类B对象的引用,但是类B并不包含类A对象的引用。
单向关联
public class Customer{
private Address address;
}
public class Address{
}
小结:顾客(Customer)拥有地址(Address),Customer类的属性中有Address类的对象,则Customer类与Address类具有单向关联关系。2. 双向关联
定义:类A与类B如果包含对方的引用,则称类A与类B是双向关联的关系。
双向关联
public class Student{
private Teacher teacher;
}
public class Teacher{
private Student student;
}
小结:老师(Teacher)教育的学生(Student),反之,接受教育的学生总有某个老师与之相关联。因此,Teacher类和Student类之间具有双向关联关系。
自关联
定义:自己包含自己。
public class StudentNode{
private StudentNode next;
public void setNext(StudentNode next){
this.next = next;
}
}
5. 聚合关系(Aggregation)
定义:聚合关系表示的是整体和部分的关系,整体和部分可以分开。
聚合关系
public class Car{
private Wheel wheel;
public void setWheel(Wheel wheel){
this.wheel = wheel;
}
}
public class Wheel{
}
6. 组合关系(Composition)
定义:组合关系表示的是整体和部分的关系,整体和部分不可分开。
组合关系
public class Face{
private Nose nose;
public Face(Nose nose){
this.nose = nose;
}
}
public class Nose{
}
idea uml图各符号含义_java利器之UML类图详解(IDEA)相关推荐
- java uml类图教程_Java利器之UML类图详解
原标题:Java利器之UML类图详解 (点击上方公众号,可快速关注) 来源:伯乐在线专栏作者- Code4Android 如需转载,发送「转载」二字查看说明 前言 UML(Unified Modeli ...
- java 日期处理工具类_Java日期处理工具类DateUtils详解
本文实例为大家分享了Java日期处理工具类DateUtils的具体代码,供大家参考,具体内容如下 import java.sql.Timestamp; import java.text.ParseEx ...
- #UML# Astah+Doxygen 将C++源码映射为类图内成员只支持基本类型不支持自定义类型
根据上篇文章#UML# Astah+Doxygen 将C++源码映射为类图,我们可以很轻松的将源码自动映射成类图, 然而在实际过程中,会发现生成的类图中,成员变量经常会有丢失的现象. 只支持基本类型不 ...
- Java指令全集_Java的JVM字节码指令集详解
本文详细介绍了如何使用javap查看java方法中的字节码.以及各种字节码的含义,并且配以完善的案例,一步步,从头到尾带领大家翻译javap的输出.在文末还附有JVM字节码指令集表. 本文不适合没有J ...
- ❤️导图整理数组6:四数组的四数之和,详解Counter类实现哈希表计数,力扣454❤️
此专栏文章是对力扣上算法题目各种方法的总结和归纳, 整理出最重要的思路和知识重点并以思维导图形式呈现, 当然也会加上我对导图的详解. 目的是为了更方便快捷的记忆和回忆算法重点(不用每次都重复看题解), ...
- java file 实例_Java File类的详解及简单实例
Java File类的详解及简单实例 1. File():构造函数,一般是依据文件所在的指定位置来创建文件对象. CanWrite():返回文件是否可写. CanRead():返回文件是否可读. Co ...
- UML 类图各符号含义速查
链接:https://pan.baidu.com/s/1RePYipe_4hnW_EtCbD-r9Q 提取码:0000 概述 类图 类名 访问修饰符 变量名 : 返回类型(例:+ Username : ...
- idea uml图各符号含义_uml中,各种符号的意义总结
1.依赖关系(在java中类似于delegation):用虚线箭头表示 是类和类之间的一种关系.这种关系是单向的,如果为双向的就可能造成像多线程编程中的死锁现象,程序进入死循环. 2.关联:实线箭头表 ...
- Java利器之UML类图详解
前言 UML(Unified Modeling Language)中文统一建模语言,是一种开放的方法,用于说明.可视化.构建和编写一个正在开发的.面向对象的.软件密集系统的制品的开放方法.UML展现了 ...
最新文章
- java多线程中的join方法详解
- Redis集群方案之Twemproxy+HAProxy+Keepalived+Sentinel+主从复制(待实践)
- 幸运大抽奖 | 神策 2020 数据驱动用户大会等你来
- 898. 子数组按位或操作
- Android攻城狮Gallery和ImageSwitcher制作图片浏览器
- 【Linux】Linux中vim的使用
- Condition总结-CountDownLatch
- 数组-slice、indexOf
- 解密微信介入智能硬件的逻辑
- Elasticsearch 5.x segments merge 流程分析
- sql分组排序, 分页查询
- 动态随机存储器的刷新
- 体系切换,华为IPD的研发管理之道(上)
- kafka2.0-幂等发送(the idempotent producer)_09
- 应用软件安全编程概述
- 计算机boot快捷键,求各种电脑进入boot 的方式,一般的电脑快捷键是什么?
- 艾兰岛逻辑-触发区域
- 因补助低!名校博士生开展大规模学术罢工行动!多校濒临崩溃
- 手机html编辑器微信,手机微信编辑器,秒书是唯一支持手机的微信编辑器
- pdb—Python调试器
热门文章
- 2022年道路运输企业安全生产管理人员操作证考试题模拟考试平台操作
- UML九种标准图详解
- ZCMU--5252: 英雄卡(C语言)
- AutoCAD-定义图层
- 电脑一打开wps就黑屏_如何解决电脑打开黑屏只显示鼠标的问题
- 怎样使用云服务器搭建一个属于自己的传奇游戏服
- TUV - TUV NORD - 南德 - 之间关系
- arduino int转char_将char *转换为int arduino(Convert char* to int arduino)
- 人工智能史话 (一)
- 爱你的男人,会主动给你的