1. 类的表示
1.1 访问属性
+
: public
-
: private
#
: protected
1.2 接口与抽象类
斜体 表示抽象类和抽象方法
<<Interface>>
类表示接口
1.3 类图示意
Mclass |
---|
- val: int |
+ getVal(): int |
2. 类关系
2.1 实现关系
空心三角形和虚线组成
B实现A,则三角形尖尖朝向A,在三角形底边引一条虚线再连接B。
2.2 泛化关系
is a
关系, 继承关系。
B继承A,则三角形尖尖朝向A,在三角形底边引一条实现线再连接B。
2.3 依赖关系
use a
关系
弱关联关系: 对象A用到对象B, 但是和B的关系不是太明显的时候,就是依赖关系。
用一个虚线箭头表示,A使用了B, 则使用虚线箭头指向B。
代码1:
java
public class B {
public String field1;
public void method1() {
System.println("在类B的方法1中");
}
public static void metho2() {
System.out.println("在类B的静态方法2中");
}
}
代码2:
java
public class A {
public void method1() {
B b = new B();
b.method1();
}
public void method2() {
B.method2();
}
public void method3(B b) {
String s = b.field1;
}
public B method4() {
return new B();
}
}
2.4 聚合关系
聚合就是整体与部分的关系,即has a
关系。
用一个空心菱形和实线箭头表示。
A由于B、C聚合而成,则由A引申一个空心菱形,在引入线连接到B、C。
实例1:汽车类和汽车驾驶员
java
class CarClass {
String carName;
int carId;
CarClass (String name, int id )
{
this.carName = name;
this.carId = id;
}
}
class Driver extents CarClass {
String driverName;
Driver(String name, String cname, int cid) {
super(cname, cid);
this.driverName = name;
}
}
class TransportCompany {
public static void main(String args[])
{
Driver obj = new Driver("Andy", "Ford", 9988);
System.out.println(obj.driverName + "is a driver of car Id: " + obj.carId);
}
}
2.5 组合关系
组合比聚合更强,部分与整体的生命周期一致。
用一个实心菱形和实线箭头表示。
A由于B、C组合而成,则由A引申一个实心菱形,在引入线连接到B、C。
2.6 关联关系
关联关系比组合关系要弱,通过他们对象本身。一对一,一对多,多对多。
用实线箭头来表示,A关联B则用A指向B。
2.7 聚合、组合、关联区别
关联是两个类之间的关系,可以是一对一,一对多,多对多。
聚合则是一种单向的关系,比如钱包和钱,一个实体可以脱离另外一个实体的存在而存在。钱没了不表示钱包就没了。
组合关系则表示两个实体强关联,像人和心脏一样。