类与类之间的关系主要有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
{
}
关联:若类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)
{
//骑车去上班
}
显然这样的话,说明主人没有自行车,去上班要到处去借车子,依赖于特定的车子,无对应的关系
{
}
下面引用书上的举例说明关联,依赖的区别
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)
{
//骑车去上班
}
显然这样的话,说明主人没有自行车,去上班要到处去借车子,依赖于特定的车子,无对应的关系
转载于:https://blog.51cto.com/zhuhanshan/101560