1.1 抽象过程
面向对象思想的实质:程序可以通过添加新类型的对象使自身适用于某个特定问题。
面向对象思想的五个基本特征:
1)万物皆对象
2)程序是对象的集合
3)每个对象都有自己的由其他对象所构成的存储
4)每个对象都有其类型
5)某一特定类型的所有对象都可以接收同样的消息
对象具有行为、状态和标识,这意味着每一个对象都可以有内部数据(他们给出了该对象的状态) 和方法(他们产生行为),每一个人对象在内存中都有一个唯一的地址。
1.2 每个对象都有一个接口
创建抽象数据类型是面向对象程序设计的基本概念之一。
类描述了具有相同特性(数据元素)和行为(功能)的对象集合。
1.3 每个对象都提供服务
试图理解一个服务设计时,最好的方法就是将对象想想为“服务提供者”。
1.4 被隐藏的具体实现
程序员按照角色分为类创建(构建类)和客户端程序员(收集各种用来实现快速应用开发的类)。
访问控制存在的第一个原因是让客户端程序员无法触及到他们不应该触摸到的部分。
第二个原因是允许类库设计者可以改变 内部的工作方式而不会担心影响到客户端程序员。
public: 公用的,任何人都可以访问的;
private:私有成员变量;
protected:受保护的;
默认: 包访问权限:类可以访问在同一个包下的其他成员。
1.5 复用具体实现
一旦类被创建并被测试完,那么他就应该代表一个有用的代码单元。
代码复用是面向对象思想最了不起的优点之一。
组合:使用现有的类合成一个新的类。如果组合是动态发生的,那么它通常称为聚合。组合被视为“has-a"关系。
组合带来了巨大的灵活性,新类的成员通常都被声明为private。
在建立新类的时候,应该首先考虑组合关系。因为组合更简单灵活,处处使用继承会导致难以使用并过分的设计。
1.6 继承
以现有的类为基础,复制它,然后通过添加和修改这个副本来创建新类。通过继承就可以达到这个效果,不过也有例外,当源类(被称为基类、超类或者父类)发生变动时,被修改的副本(也被称为导出类、继承类或者子类)也会反映出这种变动。
类型不仅仅是描述了作用于一个对象集合上的约束条件,同时还有与其他类型之间的关系。
继承使用基类型和异出类型的概念表示:两个类型具有相同的行为和特性,但其中一个类型可能比另一个含有更多的特性。