UML类图的理解:
主要是查看一些框架的时候,经常看见一些UML类图方便一下。。。闲话不多开始。
-
UML分类
- 继承
- 实现
- 关联
- 聚合
- 组合
- 依赖
继承
特点:空心三角箭头 + 实线
代码如下:
public class Person {
private String name = "Jack";
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
protected void playBasketball()
{
pass();
}
private void say()
{
}
}
-----
public class Student extends Person {
//学号。。
private String studentNo;
public void study(){
System.out.println("上课的方法");
}
}
---
public class Teacher extends Person {
private String teacherNo;
public void teach(){
System.out.println("教学");
}
}
UML类图如下:
特点: 空心三角箭头 + 实线
实现
特点:空心三角箭头 + 虚线
代码如下:
public interface Fly {
void fly();
}
---
public class Bird implements Fly {
@Override
public void fly() {
}
}
UML类图如下:
关联
特点:箭头 + 实线
代码如下:
public class Address {
}
---
public class Student {
private Address address;
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
}
UML类图如下:
特点:就是Student里面关联了Address这个属性。。一会和后面的聚合,组合有点区别。。
聚合
特点:空心菱形 + 实线 + >
代码如下:
public class Engine {
public void start(){
System.out.println("发动机发动");
}
}
---
public class Wheel {
public void run(){
System.out.println("轮子转动");
}
}
public class Car {
private Engine engine;
private Wheel wheel;
public Car(Engine engine, Wheel wheel) {
this.engine = engine;
this.wheel = wheel;
}
public void run(){
engine.start();
wheel.run();
}
}
UML类图如下:
特点: 这几个类可以单独存在,不存在生命周期的依赖关系。
组合
特点:实心菱形 + 实线 + >
代码如下:
public class Eye {
}
public class Face {
}
public class Person {
private Eye eye;
private Face face;
public Person() {
eye = new Eye();
face = new Face();
}
}
UML类图如下:
特点:组合呢,就是生命周期依靠Person这个类, 如果这个类死啦。。那个Eye和Face都没有啦。
依赖
特点:< + 虚线
代码如下:
public class Car {
public void run(){
}
}
---
public class Driver {
public void drive(Car car){
car.run();
}
}
UML类图如下:
特点:这个是一个方法里面的参数类型。 这个就是依赖。。