类与类之间的关系主要有5种:关联,依赖,聚集,泛化,实现
关联:若类A与类B有关系,则类A实例包含类B实例作为属性,有一对一关联(比如:人与汽车)一对多关联(某个老师与全班学生),多对多关联(一个人可以参加多个比赛,一个比赛可以包括很多人)
public class A
{
    private B b;
}
class class B
{
}
依赖:一个类直接访问另一个类的属性或方法,不一定要作为其属性,其耦合度高,如
public class A
{
   public void doWork(B b)
   {
 b.do();
   }
}
class B
{
    public void do()
    {
    }
}
聚集:即整体与部分的关系,如电脑包括主机,显示器,键盘,鼠标等也就这种关系
public class A
{
    private A a;
    private B b;
    private C c;
    ……
}
泛化:即一个类继承另一个类(extends)
public class A extends B
{
}
实现:一个类实现一个接口(implements)
interface B
{
}
public class A implements B
{
}
下面引用书上的举例说明关联,依赖的区别
public class Person
{
    private Bicycle bicycle;    //主机自行车
    public Bicycle getBicycle()
    {
 return bicycle;
    }
    pubic void setBicycle(Bicycle bicycle)
    {
 this.bicycle = bicycle;
    }
    public void goToWork()
    {
      //骑车去上班
    }
}
显然上面类Person与类Bicycle为关联,因为它们之间存在特定的关系,固Person包含Bicycle为属性
怎样变为依赖关系呢?只需要把goToWork()方法改为
    public void goToWork(Bicycle bicycle)
    {
     //骑车去上班
    }
显然这样的话,说明主人没有自行车,去上班要到处去借车子,依赖于特定的车子,无对应的关系