UML类图的理解。2018-09-30

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类图如下:


UML类图的理解。2018-09-30_第1张图片
20180930008.png

特点: 空心三角箭头 + 实线


实现

特点:空心三角箭头 + 虚线
代码如下:

public interface Fly {

    void fly();

}
---
public class Bird implements Fly {
    @Override
    public void fly() {

    }
}

UML类图如下:


UML类图的理解。2018-09-30_第2张图片
20180930009.png

关联

特点:箭头 + 实线
代码如下:

public class Address {  
}
---
public class Student {
    private Address address;

    public Address getAddress() {
        return address;
    }

    public void setAddress(Address address) {
        this.address = address;
    }
}

UML类图如下:


UML类图的理解。2018-09-30_第3张图片
20180930010.png

特点:就是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类图如下:


UML类图的理解。2018-09-30_第4张图片
20180930011.png

特点: 这几个类可以单独存在,不存在生命周期的依赖关系。


组合

特点:实心菱形 + 实线 + >
代码如下:

public class Eye {
}
public class Face {
}
public class Person {

    private Eye eye;
    private Face face;

    public Person() {
        eye = new Eye();
        face = new Face();
    }
}

UML类图如下:


UML类图的理解。2018-09-30_第5张图片
20180930012.png

特点:组合呢,就是生命周期依靠Person这个类, 如果这个类死啦。。那个Eye和Face都没有啦。


依赖

特点:< + 虚线
代码如下:

public class Car {
    public void run(){
        
    }
}
---

public class Driver {

    public void drive(Car car){
        car.run();
    }


}

UML类图如下:


UML类图的理解。2018-09-30_第6张图片
20180930013.png

特点:这个是一个方法里面的参数类型。 这个就是依赖。。


你可能感兴趣的:(UML类图的理解。2018-09-30)