一、对象导论(上)
计算机是头脑延伸的工具。
(一)抽象过程
人们所能够解决的问题的复杂性直接取决于抽象的类型和质量。
程序可以通过添加新类型的对象使自身适用于某个特定问题。
面向对象程序设计方式:
- 万物皆为对象。将对象视为奇特的变量,它可以存储数据,也可以要求它在自身上执行操作。
- 程序是对象的集合,他们通过发送消息来告知彼此所要做的。请求一个对象,必须对该对象发送一条消息。可以把消息看作对某个特定对象的方法的调用请求。
- 每个对象都有自己的由其他对象所构成的存储。通过创建包含现有对象的包的方式来创建新类型的对象。
- 每个对象都拥有其类型。每个对象都是某个类的一个实例。
- 某一特定类型的所有对象都可以接收同样的消息。
对象具有状态、行为和标识。每个对象都可以拥有内部数据(它们给出了该对象的状态)和方法(它们产生行为),每个对象都可以唯一地与其他对象区分开来(也就是说每个对象在内存中都有一个唯一的地址)。
(二)每个对象都有一个接口
所有的对象都是唯一的,同时也是具有相同的特性和行为的对象所归属的类的一部分。
创建抽象数据类型是面向对象程序设计的基本概念之一。
每个类的成员或元素都具有某种特性,同时,每个成员都有其自身的状态。
每个对象都只能满足某些请求,这些请求由对象的接口所定义,决定接口的便是类型。
(三)每个对象都提供服务
将对象想象为一个“服务提供者”,将每一个服务分配个不同的对象,最后通过一个对象的服务将其他服务贯穿起来。
程序本身将向用户提供服务,它通过调用其他对象提供的服务来实现这一目的。
(四)被隐藏的具体实现
将程序开发人员按照角色分为类创建者(那些创建新数据类型的程序员)和客户端程序员(那些在其应用中使用数据类型的类消费者)。
客户端程序员的目标是收集各种用来实现快速开发的类。
类创建者的目标是构建类,这种类只向客户端程序员暴露必须的部分,而隐藏其他部分。
Java用三个关键字在类的内部设定边界:public、priva、protected。
public:任何人都可以访问。
private:除了类型创建者和类型的内部方法之外的任何人都不能访问。
protected:和private作用相当,差别在于继承的类可以访问protected成员,但是不能访问private成员。
包访问权限:在没有使用前面提到的任何访问指定词时,它将发挥作用,在这种权限下,类可以访问在同一个包(库构件)中的其他类成员,但在包外,这些成员相当于private。
(五)复用具体实现
新的类可以由任意数量、任意类型的的其他对象以任意可以实现新的类中想要的功能的方式所组合。
在使用现有的类合成新的类,这种概念被称为组合。
若组合是动态发生的,则它通常被称为聚合。
新建的类通常都声明为private。
在建立新类时,要首先考虑组合
(六)继承
源类:基类、超类、父类
“副本”:导出类、继承类、子类
当子类继承一个现有父类类型时,就创建了一个新的类型。这个类型不仅包括父类所有成员(包括private成员),还复制了父类的接口。
子类和父类具有相同的类型。
使父类和子类产生差异的两种方法:
1.直接在子类添加新方法,但新方法不是父类接口的一部分。
2.改变现有父类的方法的行为,也称为覆盖。想要覆盖某个方法,可以直接在子类中创建该方法的新定义。
以上是通过Java编程思想自己认为是重点的一些小知识点。
Java编程思想真是太难理解了,小白新上路,加油!!!