对象的三个主要特征:
对象的行为,(behavior)可以为对象施加哪些操作,或可以对对象施加哪些方法。
对象的状态,(state)当施加那些方法时,对象如何响应。
对象的标识,(identity)如何区分具有相同行为与状态的不同对象。
类之间的关系:
依赖(“uses-a”)如果一个类的方法操纵另一个类的对象,我们就说一个类依赖于另一个类。
应该尽可能地将相互依赖的类减少至最少,即使类之间的偶合度最小。
聚合(“has-a”)类A的对象包含类B的对象。
继承(“is-a”)类A继承类B,类A不但包含从类B继承的方法,还有一些额外的功能。
OOP与传统的过程化程序设计技术对比:
在过程化程序设计中
首先需要确定要完成什么任务;
然后:
1、使用逐步求精的处理过程:将要完成的任务分解成若干个任务,子任务再分解成更小的子任务,直到子任务小到可以直接实现为止(这是自顶向下的方法)。
2、编写求解简单任务的方法,并将它们组装成更加复杂的过程,直到完成需要实现的功能为止(这是自底向上的方法)。
在过程化程序设计中,确定过程的手段与OOP中确定方法的方式基本一样,即查看问题描述中的动词或者动作。而在OOP中的最重要区别是首先从项目中分离出类,然后再找出这个类中需要定义哪些方法。另一个区别是在OOP中,每个方法都与负责执行这个操作的类相关联。
规模小的用过程化方法比较合适;
规模大的用类和方法将会带来两点好处:
1、类提供了一种便于将众多的方法聚集在一起的机制;
2、类的封装机制将有助于对其他的类方法隐藏数据表示;