UML类图
UML类图介绍
-
概念
UML中的类图(Class Diagram)用于表示类、接口、实例等之间相互的静态关系。虽然名字叫作类图,但是图中并不仅仅只有类。
-
类结构
-
继承
该图展示了Parentclass和Childclass两个类之间的关系,其中的空心箭头表明了两者之间的层次关系。箭头由子类指向父类,换言之,这是表示继承(extends)的箭头。
ParentClass是Childclass的父类,反过来说,Childclass是Parentclass的子类。父类也称为基类或超类,子类也称为派生类。
-
实现
该图表示PrintClass类实现了Printable接口。为了强调接口与抽象类的相似性,本书的类图中会以斜体方式显示接口的名字。不过在其他书的类图中,接口名可能并非以斜体显示。空心箭头代表了接口与实现类的关系,箭头从实现类指向接口。换言之,这是表示实现(implements)的箭头。
-
聚合
该图展示了Color(颜色)、Fruit(水果)、Basket(果篮)这3个类之间的关系。Basket类中的fruits字段是可以存放Fruit类型数据的数组,在一个Basket类的实例中可以持有多个Fruit类的实例;Fruit类中的color字段是Color类型,一个Fruit类实例中只能持有一个Co1or类的实例。通俗地说就是在篮子中可以放人多个水果,每个水果都有其自身的颜色。我们将这种“持有”关系称为聚合(aggregation)。只要在一个类中持有另外一个类的实例无论是一个还是多个一它们之间就是聚合关系。就程序上而言,无论是使用数组、java.uti1Vector或是其他实现方式,只要在一个类中持有另外一个类的实例,它们之间就是聚合关系。在UML中,我们使用带有空心菱形的实线表示聚合关系,因此可以进行联想记忆,将聚合关系想象为在空心菱形的器皿中装有其他物品。
-
关联
可以在类名前面加上黑三角表示类之间的关联关系
-
可见性
该图标识出了方法和字段的可见性。在UML中可以通过在方法名和字段名前面加上记号来表示可见性。
“+”表示pub1ic方法和字段,可以从类外部访问这些方法和字段。
“-”表示private方法和字段,无法从类外部访问这些方法和字段。
“#”表示protect方法和字段,能够访问这些方法和字段的只能是该类自身、该类的子类以及同一包中的类。
“~”表示只有同一包中的类才能访问的方法和字段。