共四种:

(1)关联(Association)

               两个独立实例存在对应关系,如客户和订单,公司和员工。

实例变量来实现。

 

              

类与类之间的关系_工具

                代码:  

               

public class Company{    
private Employee employee;
public Employee getEmployee(){
return employee;
}
public void setEmployee(Employee employee){
this.employee=employee;
}
//公司运作
public void run(){
employee.startWorking();
}
}

(2)聚合(Aggregation)

                较强的关联关系,强调的是整体和部分

实例变量来实现这样关系的。

 

              

类与类之间的关系_工具_02

 

            聚合和组合(composition)的区别             

           举一个简单的例子:
            一个图书馆可以有十万本书,也可以一本也没有。但空的图书馆还是图书馆。这是聚合
            一个车(我们平常能看到的普通的交通工具车)有轮子,有的车是四轮子的,有的车是三轮的,自行车是二轮的,还有独轮车,但车至少要有一个轮子,不然就不是车。这是组合关系。

           代码:

          

public class Computer{    
private CPU cpu;
public CPU getCPU(){
return cpu;
}
public void setCPU(CPU cpu){
this.cpu=cpu;
}
//开启电脑
public void start(){
//cpu运作
cpu.run();
}

  (3)泛化(Generalization)

              表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系

               具体表现:父类 父类实例=new 子类()

 

              

类与类之间的关系_实例变量_03


             代码:

       

class Animal{}    
class Tiger extends Animal{}
public class Test {
public void test()
{
Animal a=new Tiger();
}
}

(4) 依赖(Dependency)

             对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时.

局部变量,方法的参数,以及对静态方法的调用。

 

           

类与类之间的关系_交通_04

             代码:

            

public class Person{    
/** 拧螺丝 */
public void screw(Screwdriver screwdriver){
screwdriver.screw();
}
}