UML可以让系统可视化、让规格和设计文档化的表现方法。

类图

UML中的类图(Class Diagram)用于表现 类、接口、实例等之间相互的静态关系。虽然名字叫做类图,但是图中并不仅仅只有类。

类与层次结构

  1. abstract class ParentClass {
  2. int field1;
  3. static char field2;
  4. abstract void methodA();
  5. double methodB(){
  6. return 0.0;
  7. }
  8. }
  9. class ChildClass extends ParentClass{
  10. @Override
  11. void methodA() {
  12. }
  13. static void methodC(){
  14. }
  15. }

image.png

上图展示了ParentClass和ChildClass两个类之间的关系,其中空心箭头表明了两者之间的层次关系。箭头由子类指向父类。这表示继承。
上图中,长方形内部被横线分为三个区域

  • 类名
  • 字段名
  • 方法名

静态字段带有下划线,如field2。抽象方法用斜体表示。静态方法有下划线。

接口与实现

  1. public interface Printable {
  2. abstract void print();
  3. abstract void newPage();
  4. }
  5. class PrintClass implements Printable{
  6. @Override
  7. public void print() {
  8. }
  9. @Override
  10. public void newPage() {
  11. }
  12. }

image.png

聚合

image.png

  1. public class Basket {
  2. Fruit[] fruits;
  3. }
  4. class Fruit{
  5. Color clolr;
  6. }
  7. class Color{}

将“持有”关系称为聚合(aggregation)
在UML中使用空心菱形的实线表示聚合关系。

可见性(访问控制)

“+”表示public方法和字段
“-”表示private方法和字段
“#”表示protected方法和字段(能够访问这些字段的只能是该类自身、该类的子类以及同一包中的类)
“~”表示只有同一包中的类才能访问字段和方法

类的关联

image.png