面向对象技术导论.ppt
《面向对象技术导论.ppt》由会员分享,可在线阅读,更多相关《面向对象技术导论.ppt(30页珍藏版)》请在三一办公上搜索。
1、第7章 面向对象技术导论,面向对象(Object-Oriented)技术体现了计算机程序设计的一种思想,这种技术体现在具体的开发语言中,如Java语言。一种语言完全或部分的以面向对象的思想设计和实现就称该语言为面向对象的计算机程序开发语言。本节既然是导论,目的是希望读者对面向对象编程具有初步认识,当然这需要具体内容来介绍。面向对象技术主要体现在面向对象的思想,进而讨论类和对象(类的实体),而继承、多态、封装又是面向对象思想不可替代的优势体现,所以本章将对面向对象的主要内容做细致的讲解,该章是面向对象程序设计的基础,具有抽象性的特点,但是只有确实理解和把握了这些思想才能更好的利用Java语言进行
2、程序设计和代码的编写。,7.1 万事万物皆对象,在以往的程序开发语言如C语言中,整个程序是过程式的。面向对象的思想出现的比较早。在80年代软件开发方面面向对象技术再次成为研究的热点,其中,Booch、Coad/Yourdon、Jacobson在面向对象的研究中获得了业界的广泛认可。尤其是统一建模语言综合了Booch、Coad/Yourdon、Jacobson的各自优点,并且吸收了许多工程实践经验的理念和技术,成为OMG面向对象方法的标准。应用到计算机编程领域后,它的突出优势体现在对象概念上。这种把万物抽象化为对象的思想,符合人类对事物理解的思维方式,把这种思维方式应用到计算机程序设计上可以流畅
3、的表达程序员的思想,简化系统的分析和设计。,7.1.1 程序设计中的抽象化认识,我们日常生活中的对象(Object)可以是具体的实物,如桌子、灯泡、电视等。也可以是抽象的事物,如一个想法。抽象的事物摸不着、看不到,但是人类的思想可以感受到,最终它可以通过某种方式体现出来,所以抽象和具体是事物的两端,是人类智慧的体现。计算机程序设计在程序员角度讲就是对待解决问题的建模,这种建模的过程就是对问题域进行抽象化认识的过程。将问题空间中诸元素表示成对象。将对象的行为描述为具体的实现方法,把对象的静态特性描述为具体的静态属性。程序可以根据特定的问题领域而灵活的添加新类型的对象。因此在理解分析待求解的问题时
4、也就完成了对问题的抽象化认识,把抽象化的结果用面向对象的程序设计语言实现。在面向对象的程序设计中,对象无处不在。整个程序是由功能各异的对象组成的。对象间通过消息通信,协调完成一系列任务。,7.1.2 如何获得和操控对象,Java语言本身是一种面向对象的程序设计语言。所以采用该语言进行程序设计之前必须接纳并理解面向对象的思想。而一旦转换到OO的编程语言中,将极大地提高编程能力和编程效率。7.1.1节讲过,面向对象的程序全部由对象组成,对象无处不在,对象之间相互通信,互相协调完成软件的功能要求。那么在Java中如何操纵对象呢?Java给出了统一的对象操控方式即采用对象的“引用”,通过引用来操控对象
5、,如修改其属性、向对象发消息、调用对象的行为等。我们以一个具体的Employee(雇员类)类说明如何获得和操控对象。,7.1.3 对象的存储空间,理解了程序设计中的抽象概念,把握了如何获得和操控对象后,有必要知道程序运行时,对象在内存中是如何存储的。首先分析一下对象相关的哪些内容需要存放,这里介绍的流对象和持久化对象在以后的章节还会讲解,这里读者知道存在这样的东西,关键是知道它们对应的存储空间。引用:在节介绍了引用,引用是操控对象的一个句柄,就如用遥控器操纵电视一样,此时遥控器是引用,电视是电视类的一个具体实体。这样引用就可操控对象的属性和行为了。Java对象:Java对象是通过new关键字创
6、建的一个类实体,这个对象不是像类定义那样是个概念性的东西,而是具体的可以操控的实体了。静态数据:静态数据是指由static关键字修饰的数据,如static float rate=0.523;这类数据存储在内存中的固定位置。当然static关键字即可以修饰类,也可以修饰方法,但这些static类和方法存放的地点与静态数据不同。常量数据:常量数据是在整个程序中永远不会改变的数据。流对象和持久化对象:Java程序中的对象一般实在程序运行时存在的,可以随时供系统调用,这些对象存活于程序之中。但Java存在一种存活于程序之外的对象或数据,可以不受运行时刻程序控制,而独立存在。典型的是“流对象”和“持久化
7、对象”。二者都把对象存储在磁盘上,并保存了当时对象的状态。在需要该对象时,可以通过某种方式生成常规的对象。,7.1.4 对象的生存空间,人类的生命是有限的。一个人类对象也就是一个具体的人在生命周期内可以完成很多事情。而在生命周期外则无能为力了。每个具体生命不会无休止的生活在这个世界上,不然地球的各种资源也无法承受。每个生命个体在离开这个世界时得到适当的清理。对于程序中的对象也有类似的问题。Java对象具有生命周期,在生命周期内系统可以随时调用。但这样的对象不可能全部存活于内存中,不然很快就会耗尽内存资源。所以,系统会适当销毁一些暂时不用的对象,以释放空间给新的对象使用。,7.2 一种新的数据类
8、型:类(Class),类是面向对象思想的重要概念。其实,面向对象程序设计的本质就是类的设计,在分析问题域后,抽象出适当的类,完成类的属性、行为和类间的通信接口设计,从而完成一个软件系统。类也是Java中的一种数据类型。本节重点讲解类的组成成份,辅助介绍其他相应的构件。,7.2.1 类(class)概述,在Java中万物皆对象。一个对象必定区别于另一个对象而成为自己。对象具有静态属性和动态行为。其实,正是这些静态属性和行为是一个对象区别于另一个对象的本质。但对象具有一定的外观,正如人的名字一样。所以从外在看,一个对象可从命名的角度区别于另一个对象,而内在是对象的属性和行为上有区别。Java使用c
9、lass关键字命名类,在关键字class后书写类名。如:class ClassName 这样就定义了一个类类型,此时类主体 内什么也没有。所以,该类不能完成任何任务。但它已经是符合Java规范定义的类了。可以生成该类的对象,并且不受对象数目的限制。ClassName newClass=new ClassName();显然这个对象是不能做任何事情的,因为类主体内什么也没定义,没有静态的属性,也没定义合适的方法。下节将介绍类的属性和方法。,7.2.2 类的属性详解,在Java程序设计中所有的工作就是定义类。定义一个类就需要向类的主体内增加两种元素,一是属性、一是方法。本节重点讲述类的属性。属性是说
10、明对象的静态属性的。如汽车类,该类的对象具有某些共有的属性,如车的颜色、品牌、加速度、外观款式等。这些可以从静态的角度描述这类事物。类的属性可以是内置数据类型,如int型、byte型、boolean型、char型等。也可以是类类型。假设已经定义了类Worker类,下面定义一个Car类。在Car类中把Worker类对象引用作为其一个属性。class Car String color;float velocity;char style;Worker worker;,7.2.3 类的方法详解,这里从两个方面详细地介绍方法,一个是方法概述、一个是参数和返回值。(1)方法概述:若想让对象可以做些事情,就
11、必须定义对象的方法(method)。在过程式语言中用函数来表述一个子程序,这里的函数功能和Java中对象的方法是异名同工。不过既然Java规范中定了对象的行为是方法,本书就沿用规范的概念。(2)参数和返回值:方法的参数是在对象调用此方法或向对象发送消息时,需要向方法提供的信息,方法可以把提供的信息经过方法主体的处理从而完成方法的功能。参数要求有参数类型和参数引用,其实说到引用读者或许有疑问,引用是相对于类对象而言的,引用是操控对象的句柄。其实,Java中类方法中的参数就是对象形式的。传入参数的对象类型必须和参数要求的对象类型相同。,7.2.3 一种特殊的方法-类的构造函数,构造函数是类的一种特
12、殊方法。该方法的作用是在类的实例化过程中初始化一些参数,如在界面编程中,会在类的构造函数中初始化用户界面控件,完成界面元素的布局等。有的类具有多个构造函数,多个构造函数之间参数不同,可以完成不同参数条件下的对象实例化操作。Java提供默认的构造函数,如果没有为类设计自己的构造函数,编译器会自动为该类添加一个构造函数。这也是该构造函数与普通方法的区别。代码缺省构造函数示例。代码 缺省构造函数示例1/定义一个类 Tree2class Tree 3int height;/声明树的高度变量。45/定义一个类DefaultConstructor 该类生成一个Tree类的对象6Public class D
13、efaultConstructor7Public static void main(String args)8/创建类Tree的对象,调用了默认构造函数Tree();9Tree tree=new Tree();1011,7.2.4 关键字static,在Java中经常会看到static关键字修饰的数据或方法,static是静态的意思,表示该数据或对象在内存中只有一份。Static关键字可以修饰数据、方法和类。其实Static可以修饰任何类型的数据,这里进行分类使读者可以更清晰地理解其用法。1static关键字修饰内置数据:Static关键字修饰内置数据的格式是在数据声明前放置关键字static
14、,修饰一个浮点型数据。Class StaticFloatTeststatic float rate=1.12f;2static关键字修饰方法:方法是类的组成成分,也就是说类把方法包裹起来,一般在调用对象的方法时首先需要new一个对象,产生该对象的实例,再通过对象引用来调用属性数据或调用方法(也称为向对象发消息)。然而使用static修饰的方法可以直接用该类调用。访问格式是:className.staticMethod();,7.2.5 关键字this,this是Java的一个关键字。一旦创建一个对象实例,虚拟机就为该对象创建一个默认的指向自己的指针。this只能用在方法中,就是指当前对象。为了
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 技术 导论
链接地址:https://www.31ppt.com/p-6066718.html