UML类图属性和相关关系
UML类图1. 类属性的可见性描述类的属性的可见性:UML中,可见性分为4级public 公用的 :用+ 前缀表示 ,该属性对所有类可见protected 受保护的:用 # 前缀表示,对该类的子孙可见private 私有的:用- 前缀表示,只对该类本身可见package 包的:用 ~ 前缀表示,只对同一包声明的其他类可见[外链图片转存失败(img-mPRbssK...
UML类图
1. 类属性的可见性
描述类的属性的可见性:
UML中,可见性分为4级
-
public 公用的 :用+ 前缀表示 ,该属性对所有类可见
-
protected 受保护的:用 # 前缀表示,对该类的子孙可见
-
private 私有的:用- 前缀表示,只对该类本身可见
-
package 包的:用 ~ 前缀表示,只对同一包声明的其他类可见

2. UML类与类之间的关系
关系有: 依赖、泛化(继承)、实现、关联、聚合、组合
2.1. 依赖关系(Dependence)
依赖关系: 是一种使用关系,即一个类实现需要另一个类的协助,所以要尽量不使用相互依赖。
代码表现: 局部变量、方法的参数或者静态方法调用
箭头及指向: 带箭头的虚线,指向被使用者
具体体现:
- 类中用到了对方;
- 如果是类的成员属性;
- 如果方法的返回值类型;
- 是方法接收的参数类型;
- 方法中使用到。
2.1.1 实例代码
public class PersonDao {
}
public class IDCard {
}
public class Person {
}
public class Department {
}
public class PersonServiceBean {
private PersonDao personDao;
public void save(Person person);
public IDCard getIDCard(Integer personId) {
return null;
}
public void modify() {
Department department = new Department();
}
}
2.1.2 UML类图

2.2 泛化(继承)关系(Generalization)
2.2.1 介绍:
泛化关系:是一种继承关系,表示一般与特殊的关系,它指定了子类如何转化父类的所有特性和行为。他是依赖关系的特例。
箭头指向: 带三角空心箭头的实线,箭头指向父类。
2.2.2 代码示例
public abstract class A {
public void save(Object c) {
}
public void delete(Object id) {
}
}
public class B extends A {
}
2.2.3 UML图

2.3 实现关系(Implementation)
2.3.1 介绍
实线关系:是一种类与接口之间的关系,表示类是接口所有的特性和行为的实现。他是依赖关系的特例。
**箭头指向:**带空心三角形箭头的虚线,箭头指向接口。
2.3.2 代码示例
public interface A {
public void delete(Integer id);
public void save(Object a);
}
public class B implements A {
public void delete(Integer id) {
}
public void save(Object a) {
}
}
2.3.3 UML图

2.4 关联关系(Association)
2.4.1 介绍
**关联关系:**是一种拥有的关系,他使一个类知道另一个类的属性和方法;如:老师和学生。丈夫和妻子关联可以使双向,也可以单向。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。
**代码体现:**成员变量
**箭头指向:**带空心菱形的实心线,指向被拥有者。
2.4.2 UML图

2.5 聚合关系
2.5.1 介绍
**聚合关系:**是整体与部分的关系,且部分与整体可以分离而单独存在,如车和轮胎是整体与部分的关系,轮胎离开车仍然可以存在。
聚合关系是关联关系的一种,是强的关联关系,关联和聚合在语法上无法区分,必须考察具体的逻辑关系。
**代码体现:**成员变量
**箭头指向:**带空心菱形的实心线,菱形指向被拥有者
2.5.2 示例代码
// 汽车类
public class Car {
private Tyre tyre;
private void setTyre(Tyre tyre) {
this.tyre = tyre;
}
}
// 轮胎类
public class Tyre {
}
2.5.3 UML图

2.6 组合关系
2.6.1 介绍
**组合关系:**是整体和部分关系,但部分不能离开整体而单体存在,如公司和部分是整体和部分的关系,没有公司就不存的部分。
组合关系是关联关系的一种,是比聚合关系还要强的关系,他要求普通的聚合关系中代表整体的对象负责代表
2.6.2 示例代码
// 人
public class Person {
private Head head = new Head();
}
// 脑袋
public class Head {
}
2.6.2 示例代码
// 人
public class Person {
private Head head = new Head();
}
// 脑袋
public class Head {
}
2.6.3 UML图

更多推荐



所有评论(0)