从http://www.cnblogs.com/liuling/archive/2013/05/03/classrelation.html学习
http://blog.sina.com.cn/s/blog_59ca2c2a01012ido.html
在学习之前,先根据我们很很有限的开发经历,来看看类之间有什么关系?我们用过哪些呢?
这里的类包括抽象类,类,接口、这里面关系其实更复杂,但是初次认知,只要认识其基础就行,
1、继承
子类和父类之间的关系
2、实现
类实现接口中的所有方法,期中接口中的变量为static final变量
继承和实现很好理解,不多说。但是对于UML图中,有箭头和直线。
继承:实线+ 空心箭头
实现: 虚线+空心箭头
3。关联关系:(实现+箭头)
隐约在数据库的表的设计中,也有类似概念
一对一:一个女人只能有一个老公,一个老公只有老婆(可能有例外)
所以学生类
class Girl
{
Boy b;
}
class Boy
{
Girl g;
}
对于一对一的关联,需要,每个女孩对象都对应一个男孩对象,同时 。。。。
所以 女孩类中设置一个属性为Boy 对象,男孩类中有一个Girl 对象。
一对多:一个学生只能毕业于一所大学,但是一个大学有好多学生。
class Studnet
{
Schlool s;//该属性表示毕业的大学
}
class School
{
ArrayList<Student> array;//保存一个学校对应的学生
}
懂了吗,多对多久不举例子了,
其实在属性中使用了对方的类的对象做为属性。
4.依赖关系:
类A依赖B是怎么依赖的呢?
举个简单的例子吧
Class A
{
public void fun(B a)
{
B.methode();//调用B的某方法
}
}
2.
class A
{
public void fun()
{
B b=new B;
System.out.println(b.属性);
}
}
类B创建了A的对象, 使用A的方法和属性都叫依赖A,用了别人家的东西就叫依赖啊,而关联关系是相互的,但是依赖可以是单方面的。
5聚合和组合:
放到一起,因为太像了。他们都是整体和部分关系,
聚合: 整体和部分可以好聚好散,说白了,你从销售部分调用几个人,从技术调用几个人,当做一个小组,这些人都是临时部门的一部分,这种关系叫聚合,因为这些人可以以后属于其他部门和小组。
组合:你的头和你的腿,手,组合成了你自己,请问你的这些部分可以属于其他的整体吗?大多数不可以。这就是组合。