第十章 面向对象思考
10.2 类的抽象和封装
1.类的抽象是指将类的实现和类的使用分离开,实现的细节被封装并且对用户隐藏,这被称为类的封装。
2.从类外可以访问的方法和数据域的集合以及预期这些成员如何行为的描述,合称为类的合约(class's contract)。
3.实现的细节经过封装,对用户隐藏起来,这称为类的封装(class encapsulation)。
10.3 面向对象的思考
面向过程的范式重点在于设计方法。面向对象的范式将数据和方法耦合在一起构成对象。使用面向对象范式的软件设计重点在对象以及对对象的操作上。
10.4 类的关系
为了设计类,需要探索类之间的关系。类中间的关系通常是关联、聚合、组合以及继承。
10.4.1 关联
1.关联是一种常见的二元关系,描述两个类之间的活动。
2.关联中涉及的每个类可以给定一个多重性(multiplicity),放置在类的边上用于给定UML图中关系所涉及的类的对象数。
10.4.2 聚集和组合
1.聚集是关联的一种特殊形式,代表了两个对象之间的归属关系。聚集建模has-a关系。所有者对象称为聚集对象,它的类称为聚集类。而从属对象称为被聚集对象,它的类称为被聚集类。
2.一个对象可以被多个其他的聚集对象所拥有。如果一个对象只归属于一个聚集对象,那么它和聚集对象之间的关系就称为组合(composition)。
10.6 示例练习:设计栈类
栈(stack)是一种以“后进先出”的方式存放数据的数据结构。
10.7 将基本数据类型值作为对象处理
1.基本数据类型值不是一个对象,但是可以使用Java API中的包装类来包装成一个对象。</