本来学院是开过Java课程的,但是之前自己学的很水,感觉什么都没学到==。于是现在又打算自学Java。在网上找的马士兵老师的视频教程,今天学习内容初步总结如下:
一、面向对象这个词,只要是有程序基础的人应该都不会陌生。一般来说,类(对象)之间的关系有以下几种:
1.关联关系(最弱)
这个怎么理解呢?简单的说,比如定义两个类,一个为Assistant(售货员),一个为Candy(糖果),Assistant这个类我们定义一个方法sell(销售),这个方法需要传递参数吧,我们可以加一个形参为糖果,也就是sell(Candy c)。看到这里你就明白啦,所谓关联关系指的就是一个类的方法中用到了另一个类的对象。
2.继承关系
继承这个词,在面向对象里可谓是随处可见。继承简单的说就是is-a,如果两个类的关系能用is-a说得通,那么这两个类就满足继承关系了。比如Person这个类和Teacher这个类,Teacher是Person的一种吧,Person就叫做Teacher的父类,Teacher为Person的子类。值得一提的是,Java中只有单一继承,也就是说一个类的直系父类只能有唯一一个,而C++允许多重继承。
3.聚合关系
聚合关系简单说就是整体和部分的关系。还可划分为聚集和组合两种关系。
1)聚集关系(比较松散)
如上图所示,表现的就是一种聚集关系。队长和队员都是球队的组成部分,队长可以是这支球队的队长,也可以是另一支球队的队长,队员也是如此。
2)组合关系(密不可分)
如上图所示,一个人的头只能属于他自己,不可能说这个头既是他自己的也是另外一个人的。
接下来还有什么实现关系和多态关系之类的,这里就不说明了。