第一章
1 对象有状态、行为和标识。
2 对象有接口。
3 将对象视为服务的提供者还有个额外的优点: 能提高对象的内聚性。内聚性高是高质量的软件设计的基本要求:就是软件的各种组件(如对象,方法和类库)应该能很好的“组装在一起”。一个良好的面向对象的设计中,每个对象都应该只作一件事,并作好一件事,而不是去作太多的事
4 隐藏实现。Public 表示后面跟着的东西谁都能用。Private 表示除非类的创建者能用这个类的方法进行访问,否则没有人能访问到这个元素。Protected 继承类能访问到protected成员,但不能访问到private 成员。Java有个缺省权限,称为package权限,同个package都能访问没有定义的成员,除了这个package,他们就都是private.
5 复用实现。UML中用实心菱形表示合成关系。当创建一个新类时,应该优先考虑合成,这么做会更简单灵活,而不要一味的用继承。
6 继承:复用接口。UML中用空心三角箭头从派生类指向基类。当你继承一个类时,你也创建了一个类,这个类不仅包含了自己所有成员,更重要的是他复制了基类的借口。继承的派生类,可以通过增加新方法和覆写基类已有的方法,那完善自己所需的类。
7 可凭借多态性相互替换的对象。 我们将派生类当作它的基类来用的过程叫上传(upcast)。