编程红宝书(珍藏版) ava 完金自学手册 第7章面向对象技术导论 ·面向对象(0 b ject-Oriented)技术体现了计算机程序设计的 种思想,这种技术体现在具体的开发语言中,如Java语 言。一种语言完全或部分的以面向对象的思想设计和实现 就称该语言为面向对象的计算机程序开发语言。 本节既然是导论,目的是希望读者对面向对象编程具有初 步认识,当然这需要具体内容来介绍。面向对象技术主要 体现在面向对象的思想,进而讨论类和对象(类的实体) 而继承、多态、封装又是面向对象思想不可替代的优势体 现,所以本章将对面向对象的主要内容做细致的讲解,该 章是面向对象程序设计的基础,具有抽象性的特点,但是 有确实理解和把握了这些思想才能更好的利用Java语言 进行程序设计和代码的编写。 Q想桃工业出隙社
第7章 面向对象技术导论 • 面向对象(Object-Oriented)技术体现了计算机程序设计的 一种思想,这种技术体现在具体的开发语言中,如Java语 言。一种语言完全或部分的以面向对象的思想设计和实现 就称该语言为面向对象的计算机程序开发语言。 • 本节既然是导论,目的是希望读者对面向对象编程具有初 步认识,当然这需要具体内容来介绍。面向对象技术主要 体现在面向对象的思想,进而讨论类和对象(类的实体), 而继承、多态、封装又是面向对象思想不可替代的优势体 现,所以本章将对面向对象的主要内容做细致的讲解,该 章是面向对象程序设计的基础,具有抽象性的特点,但是 只有确实理解和把握了这些思想才能更好的利用Java语言 进行程序设计和代码的编写
编程红宝书(珍藏版) ava 完金自学手册 万事万物皆对象 ·在以往的程序开发语言如C语言中,整个程序是过 程式的。面向对象的思想出现的比较早。在80年 代软件开发方面面向对象技术再次成为研究的热 点,其中, Booch、Coad/ Yourdon、 Jacobson在面 向对象的研究中获得了业界的广泛认可。尤其是 统一建模语言综合了 Booch、Coad/ Yourdon、 Jacobson的各自优点,并且吸收了许多工程实践 经验的理念和技术,成为OMG面向对象方法的标准。 应用到计算机编程领域后,它的突出优势体现在 对象概念上。这种把万物抽象化为对象的思想, 符合人类对事物理解的思维方式,把这种思维方 式应用到计算机程序设计上可以流畅的表达程序 员的思想,简化系统的分析和设计。 Q想桃工业出隙社
7.1 万事万物皆对象 • 在以往的程序开发语言如C语言中,整个程序是过 程式的。面向对象的思想出现的比较早。在80年 代软件开发方面面向对象技术再次成为研究的热 点,其中,Booch、Coad/Yourdon、Jacobson在面 向对象的研究中获得了业界的广泛认可。尤其是 统一建模语言综合了Booch、Coad/Yourdon、 Jacobson的各自优点,并且吸收了许多工程实践 经验的理念和技术,成为OMG面向对象方法的标准。 应用到计算机编程领域后,它的突出优势体现在 对象概念上。这种把万物抽象化为对象的思想, 符合人类对事物理解的思维方式,把这种思维方 式应用到计算机程序设计上可以流畅的表达程序 员的思想,简化系统的分析和设计
编程红宝书(珍藏版) ava 完金自学手册 7.1.1程序设计中的抽象化认识 我们日常生活中的对象(0 b ject)可以是具体的实物,如 桌子、灯泡、电视等。也可以是抽象的事物,如一个想法 抽象的事物摸不着、看不到,但是人类的思想可以感受到, 最终它可以通过某种方式体现出来,所以抽象和具体是事 物的两端,是人类智慧的体现 计算机程序设计在程序员角度讲就是对待解决问题的建模, 这种建模的过程就是对问题域进行抽象化认识的过程。将 问题空间中诸元素表示成对象。将对象的行为描述为具体 的实现方法,把对象的静态特性描述为具体的静态属性, 程序可以根据特定的问题领域而灵活的添加新类型的对象 因此在理解分析待求解的问题时也就完成了对问题的抽象 化认识,把抽象化的结果用面向对象的程序设计语言实现。 在面向对象的程序设计中,对象无处不在。整个程序是由 功能各异的对象组成的。对象间通过消息通信,协调完成 系列任务。 Q想桃工业出隙社
7.1.1 程序设计中的抽象化认识 • 我们日常生活中的对象(Object)可以是具体的实物,如 桌子、灯泡、电视等。也可以是抽象的事物,如一个想法。 抽象的事物摸不着、看不到,但是人类的思想可以感受到, 最终它可以通过某种方式体现出来,所以抽象和具体是事 物的两端,是人类智慧的体现。 • 计算机程序设计在程序员角度讲就是对待解决问题的建模, 这种建模的过程就是对问题域进行抽象化认识的过程。将 问题空间中诸元素表示成对象。将对象的行为描述为具体 的实现方法,把对象的静态特性描述为具体的静态属性。 程序可以根据特定的问题领域而灵活的添加新类型的对象。 因此在理解分析待求解的问题时也就完成了对问题的抽象 化认识,把抽象化的结果用面向对象的程序设计语言实现。 • 在面向对象的程序设计中,对象无处不在。整个程序是由 功能各异的对象组成的。对象间通过消息通信,协调完成 一系列任务
编程红宝书(珍藏版) ava 完金自学手册 7.1.2如何获得和操控对象 Java语言本身是一种面向对象的程序设计语言 所以采用该语言进行程序设计之前必须接纳并理 解面向对象的思想。而一旦转换到00的编程语言 中,将极大地提高编程能力和编程效率。7.1.1节 讲过,面向对象的程序全部由对象组成,对象无 处不在,对象之间相互通信,互相协调完成软件 的功能要求 那么在Java中如何操纵对象呢?Java给出了统 的对象操控方式即采用对象的“引用”,通过引 用来操控对象,如修改其属性、向对象发消息、 调用对象的行为等。我们以一个具体的 Employee(雇员类)类说明如何获得和操控 械工业出版社 na Machine Press
7.1.2 如何获得和操控对象 • Java语言本身是一种面向对象的程序设计语言。 所以采用该语言进行程序设计之前必须接纳并理 解面向对象的思想。而一旦转换到OO的编程语言 中,将极大地提高编程能力和编程效率。7.1.1节 讲过,面向对象的程序全部由对象组成,对象无 处不在,对象之间相互通信,互相协调完成软件 的功能要求。 • 那么在Java中如何操纵对象呢?Java给出了统一 的对象操控方式即采用对象的“引用”,通过引 用来操控对象,如修改其属性、向对象发消息、 调用对象的行为等。我们以一个具体的 Employee(雇员类)类说明如何获得和操控对象
编程红宝书(珍藏版) ava 完金自学手册 7.1.3对象的存储空间 理解了程序设计中的抽象概念,把握了如何获得和操控对象后,有必要知 道程序运行时,对象在内存中是如何存储的。 首先分析一下对象相关的哪些内容需要存放,这里介绍的流对象和持久化 对象在以后的章节还会讲解,这里读者知道存在这样的东西,关键是知道 它们对应的存储空间。 引用:在7.1.2节介绍了引用,引用是操控对象的一个句柄,就如用遥控 器操纵电视一样,此时遥控器是引用,电视是电视类的一个具体实体。这 样引用就可操控对象的属性和行为了。 Java对象:Java对象是通过new关键字创建的一个类实体,这个对象不是 像类定义那样是个概念性的东西,而是具体的可以操控的实体了。 静态数据:静态数据是指由 static关键字修饰的数据,如 static float rate=0.523;这类数据存储在内存中的固定位置。当然 static关键字即 可以修饰类,也可以修饰方法,但这些 static类和方法存放的地点与静态 数据不同。 常量数据:常量数据是在整个程序中永远不会改变的数据 流对象和持久化对象:Java程序中的对象一般实在程序运行时存在的,可 以随时供系统调用,这些对象存活于程序之中。但Java存在一种存活于程 序之外的对象或数据,可以不受运行时刻程序控制,而独立存在。典型的 是“流对象”和“持久化对象”。二者都把对象存储在磁 了当时对象的状态。在需要该对象时,可以通过某种方式生成带期地限盐
7.1.3 对象的存储空间 • 理解了程序设计中的抽象概念,把握了如何获得和操控对象后,有必要知 道程序运行时,对象在内存中是如何存储的。 • 首先分析一下对象相关的哪些内容需要存放,这里介绍的流对象和持久化 对象在以后的章节还会讲解,这里读者知道存在这样的东西,关键是知道 它们对应的存储空间。 • 引用:在7.1.2节介绍了引用,引用是操控对象的一个句柄,就如用遥控 器操纵电视一样,此时遥控器是引用,电视是电视类的一个具体实体。这 样引用就可操控对象的属性和行为了。 • Java对象:Java对象是通过new关键字创建的一个类实体,这个对象不是 像类定义那样是个概念性的东西,而是具体的可以操控的实体了。 • 静态数据:静态数据是指由static关键字修饰的数据,如static float rate = 0.523;这类数据存储在内存中的固定位置。当然static关键字即 可以修饰类,也可以修饰方法,但这些static类和方法存放的地点与静态 数据不同。 • 常量数据:常量数据是在整个程序中永远不会改变的数据。 • 流对象和持久化对象:Java程序中的对象一般实在程序运行时存在的,可 以随时供系统调用,这些对象存活于程序之中。但Java存在一种存活于程 序之外的对象或数据,可以不受运行时刻程序控制,而独立存在。典型的 是“流对象 ”和“持久化对象 ”。二者都把对象存储在磁盘上,并保存 了当时对象的状态。在需要该对象时,可以通过某种方式生成常规的对象