3) 类的属性即类的数据职责,类的操作即类的行为职责
一、依赖关系(Dependence)
依赖关系(Dependence):假设A类的变化引起了B类的变化,则说名B类依赖于A类。
1 public class Driver 2 { 3 public void drive(Car car) 4 { 5 car.move(); 6 } 7 …… 8 } 9 public class Car 10 { 11 public void move() 12 { 13 ...... 14 } 15 …… 16 }
依赖关系有如下三种情况:
1、A类是B类中的(某中方法的)局部变量;
2、A类是B类方法当中的一个参数;
3、A类向B类发送消息,从而影响B类发生变化;
二、泛化关系(Generalization)
泛化关系(Generalization):A是B和C的父类,B,C具有公共类(父类)A,说明A是B,C的一般化(概括,也称泛化)
public class Person { protected String name; protected int age; public void move() { …… } public void say() { …… } } public class Student extends Person { private String studentNo; public void study() { …… } }
在UML当中,对泛化关系有三个要求:
1、子类与父类应该完全一致,父类所具有的属性、操作,子类应该都有;
2、子类中除了与父类一致的信息以外,还包括额外的信息;
3、可以使用父类的实例的地方,也可以使用子类的实例;
三、关联关系(Association)
关联关系(Association):类之间的联系,如客户和订单,每个订单对应特定的客户,每个客户对应一些特定的订单,再如篮球队员与球队之间的关联(下图所示)。
public class Customer { private Product[] products; …… } public class Product { private Customer customer; …… }
![](https://img-my.csdn.net/uploads/201206/07/1339064543_2384.png)
public class Customer { private Address address; …… } public class Address { …… }
![](https://img-my.csdn.net/uploads/201206/07/1339064668_4517.png)
public class Node { private Node subNode; …… }
表示方式 | 多重性说明 |
1..1 | 表示另一个类的一个对象只与一个该类对象有关系 |
0..* | 表示另一个类的一个对象与零个或多个该类对象有关系 |
1..* | 表示另一个类的一个对象与一个或多个该类对象有关系 |
0..1 | 表示另一个类的一个对象没有或只与一个该类对象有关系 |
m..n | 表示另一个类的一个对象与最少m、最多n个该类对象有关系 (m<=n) |
![](https://img-my.csdn.net/uploads/201206/07/1339064814_8559.png)
1 public class Form 2 { 3 private Button buttons[]; 4 …… 5 } 6 public class Button 7 { 8 … 9 }