对象导论

一 抽象过程java

  全部编程语言都提供抽象机制.人们所能解决的问题的复杂性直接取决于抽象的类型和质量.所谓的"类型"是指"所抽象的是什么?"汇编语言是对底层机器的轻微抽象,许多命令式语言都是对汇编语言的抽象,可是它们在解决问题时要基于计算机的结构而不是所要解决的问题的结构来考虑.程序员须要创建起机器模型和实际待解问题的模型之间的关联.程序员

  另外一种对机器建模的方式就是只针对待解决的问题,如早期的编程语言,LISP和APL.可是它们只试用于它们要解决的特定类型问题,一旦超出其领域范围就力不从心.编程

  面向对象方式经过向程序员提供表示问题空间中的元素的工具而更进了一步.这种方式使得程序员不会受限于任何特定类型的问题.这种思想的实质是:程序能够经过添加新类型的对象使自身适用于某个特定的问题.编程语言

  一个成功的面向对象语言的基本特性:工具

  1)万物皆为对象测试

  2)程序是对象的集合,它们经过发送消息来告知彼此所要作的.spa

  3)每一个对象都是本身的由其余对象所构成的存储.设计

  4)每一个对象拥有其类型.对象

  5)某个特定类型的全部对象均可以接受一样的消息.接口

 二 每一个对象都有一个接口

  建立抽象数据类型是面向对象程序设计的基本概念之一.抽象数据类型的运行方式与内置类型几乎彻底一致:你能够建立某一类型的变量,而后操做这些变量.每一个类的成员或元素都具备某种共性,每一个成员都有本身的状态.由于类描述了具备相同特性和行为的对象集合,因此一个类实际上就是一个数据类型.一旦类被创建,就能够为所欲为地建立类的任意个对象,而后去操做它们.接口肯定了对某一特定对象所能发出的请求.

三 每一个对象都是服务提供者

1,当正在试图开发或理解一个程序设计时,最好的方法之一就是将对象想象为"服务提供者".程序自己将向用户提供服务,它将经过调用其余对象提供的服务来实现这一目的.你的目标就是去建立可以提供理想解决问题的一系列对象.

 2,着手从事这件事的一种方式就是问一下本身:"若是我能够将问题从表象中抽取出来,那么什么样的对象能够立刻解决个人问题?"

 3,将对象看作是服务提供者还有一个好处就是能够提升对象的内聚性.

4,将对象做为服务提供者看待是一件伟大的简化工具.

四 被隐藏的具体实现

1,程序开发人员按照角色划分为类建立者和客户端程序员.客户端程序员的目标是收集各类用来实现快速应用开发的类.类建立者的目标是建立类.这种类只向客户端程序员暴露必需的部分,而隐藏其余部分.

2,在任何相互关系中,具备关系涉及的各方都遵照的边界是十分重要的事情.访问控制对于界定各自的边界起着重要的做用.

3,访问控制的第一个存在的缘由就是让客户端程序员没法触及他们不该该触及的部分.

4,问控制的第二个存在的缘由就是容许库设计者能够改变类内部的工做方式而不用担忧会影响到客户端程序员.

5,java用三个关键字在类的内部设定边界:public,private,protected,还有一种默认的访问权限.

五 复用具体实现

1 一旦类被建立并被测试完,那么就应该表明一个有用的代码单元.能够用于复用.代码复用是面向对象程序设计语言所提供的最了不得的有点之一.