基于对象编程.ppt
《基于对象编程.ppt》由会员分享,可在线阅读,更多相关《基于对象编程.ppt(43页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第七讲 基于对象编程本章要点面向对象的基本概念类的创建和使用对象的创建和使用访问控制符类与对象的概念类与对象的概念 程序设计所面对的问题域客观世界,是由许多事物构成的,这些事物既可以是有形的(比如一辆汽车),也可以是无形的(比如一次会议)。把客观世界中的事物映射到面向对象的程序设计中就是对象。对象是面向对象程序设计中用来描述客观事物的程序单位。客观世界中的许多对象,无论其属性还是其行为常常有许多共同性,抽象出这些对象的共同性便可以构成类。所以,类是对象的抽象和归纳,对象是类的实例。抽象原则抽象原则 所谓抽象(abstraction),就是从被研究对象中舍弃个别的、非本质的、或与研究主旨无关的次
2、要特征,而抽取与研究工作有关的实质性内容加以考察,形成对所研究问题正确的、简明扼要的认识。例如,“马”就是一个抽象的概念,实际上没有任何两匹马是完全相同的,但是我们舍弃了每匹马个体之间的差异,抽取其共同的、本质性的特征,就形成了“马”这个概念。抽象是科学研究中经常使用的一种方法,是形成概念的必要手段。在计算机软件开发领域,抽象原则的运用非常广泛,概括起来,可分为过程抽象和数据抽象两类。1.过程抽象过程抽象 过程抽象是指:软件开发者可以把任何一个完成确定功能的操作序列都看作是一个单一的实体,尽管它实际上可能是由一系列更低级的操作完成的。运用过程抽象,软件开发者可以把一个复杂的功能分解为一些子功能
3、(模块),如果子功能仍比较复杂,则可以进一步分解。这使得开发者可以在不同的抽象层次上考虑问题,在较高层次上思考时可以不关心较低层次的实现细节。面向过程的程序设计采用的是过程抽象方法。使用过程抽象有利于控制、降低整个程序的复杂度,但是,这种方法允许在全系统的范围内进行功能的描述,本身自由度大,难于规范化和标准化,不易保证软件的质量,而且操作起来也有一定难度。2.数据抽象数据抽象 数据抽象把系统中需要处理的数据和施加于这些数据之上的操作结合在一起,根据功能、性质、作用等因素抽象成不同的抽象数据类型。每个抽象数据类型既包含了数据,也包含了针对这些数据的授权操作,并限定数据的值只能由这些操作来观察和修
4、改。因此,数据抽象是相对于过程抽象更为严格、更为合理的抽象方法。面向对象的程序设计就是采用数据抽象这一方法来构建程序中的类和对象的。它强调把数据和操作结合为一个不可分的系统单位对象,对象的外部只需要知道这个对象能做什么,而不必知道它是如何做的。对象对象 只要仔细研究程序设计所面对的问题域客观世界,我们就可以看到:客观世界是由一些具体的事物构成的,每个事物都具有自己的一组静态特征(属性)和一组动态特征(行为)。例如,一辆汽车有颜色、型号、马力、生产厂家等静态特征,又具有行驶、转弯、停车等动态特征。把客观世界的这一事实映射到面向对象的程序设计中,则把问题域中的事物抽象成了对象(Object),事物
5、的静态特征(属性)用一组数据来描述,事物的动态特征(行为)则用一组方法来刻画。因此,对象具有下述特征:(1)对象标识:即对象的名字,是用户和系统识别它的唯一标志。例如,汽车的牌照可作为每一辆汽车对象的标识。对象标识有“外部标识”和“内部标识”之分。外部标识供对象的定义者或使用者用,内部标识供系统内部唯一地识别每一个对象。在计算机世界中,我们可以把对象看成计算机存储器中一块可标识的区域,它能保存固定或可变数目的数据(或数据的集合)。(2)属性:即一组数据,用来描述对象的静态特征。例如,汽车的颜色、型号、马力、生产厂家等。在Java程序中,把这一组数据称为数据成员。(3)方法:也称为服务或操作,它
6、是对象动态特征(行为)的描述。每一个方法确定对象的一种行为或功能。例如,汽车的行驶、转弯、停车等动作可分别用move()、rotate()、stop()等方法来描述。为避免混淆,把方法称为成员方法。在Java程序中,类是创建对象的模板,对象是类的实例,任何一个对象都是隶属于某个类的。Java程序设计是从类的设计开始的,所以,在进一步讲述对象的知识之前,必须先掌握类的概念。类类 对象是对事物的抽象,而类是对对象的抽象和归纳。人类在认识客观世界时经常采用的思维方法就是把众多的事物归纳成一些类。分类所依据的原则是抽象,即抽象出与当前目标有关的本质特征,而忽略那些与当前目标无关的非本质特征,从而找出事
7、物的共性,把具有共同性质的事物归结为一类,得出一个抽象的概念类。在面向对象的编程语言中,类是一个独立的程序单位,是具有相同属性和方法的一组对象的集合。类的概念使我们能对属于该类的全部对象进行统一的描述。例如,“树具有树根、树干、树枝和树叶,它能进行光合作用”。这个描述适合于所有的树,从而不必对每棵具体的树都进行一次这样的描述。因此,在定义对象之前应先定义类。描述一个类需要指明下述三个方面内容:(1)类类标标识识:类类的的一一个个有有别别于于其其他他类类的的名名字字。这这是是必必不不可少的。可少的。(2)属性说明:用来描述相同对象的静态特征。属性说明:用来描述相同对象的静态特征。(3)方法说明:
8、用来描述相同对象的动态特征。方法说明:用来描述相同对象的动态特征。例如,下面是对dog类进行的描述:class dog /class指出这是一个类,dog是类标识 String name;int AverageWeight;类的属性(静态特征)int AverageHeight;public void move()类的方法(动态特征)public void ShowDog()dog类类与对象的关系类与对象的关系 类给出了属于该类的全部对象的抽象定义,而对象则是符合这种定义的一个实体。类与对象之间的关系就如同一个模具与用这个模具铸造出来的铸件之间的关系一样。也就是说,我们可以把类与对象之间的关系
9、看成是抽象与具体的关系。在面向对象的程序设计中,对象被称作类的一个实例(instance),而类是对象的模板(temp1ate)。类是多个实例的综合抽象,而实例又是类的个体实物。如图6.1所示为类与对象的关系。图6.1 类与对象的关系 抽象实例化对象:刘丽静态特征:刘丽 女 讲师 890.00动态特征:授课 评职称 调工资数据值执行的操作方法名数据结构类:教师属性:姓名 性别 职称 工资服务:授课 评职称 调工资 定义类的一般格式定义类的一般格式 (1)系统定义的类,即Java类库,它是系统定义好的类。类库是Java语言的重要组成部分。Java语言由语法规则和类库两部分组成,语法规则确定Jav
10、a程序的书写规范;类库则提供了Java程序与运行它的系统软件(Java虚拟机)之间的接口。Java类库是一组由它的发明者SUN公司以及其他软件开发商编写好的Java程序模块,每个模块通常对应一种特定的基本功能和任务,且这些模块都是经过严格测试的,因而也总是正确有效的。当自己编写的Java程序需要完成其中某一功能的时候,就可以直接利用这些现成的类库,而不需要一切从头编写,这样不仅可以提高编程效率,也可以保证软件的质量。(2)用户自己定义的类。系统定义的类虽然实现了许多常见的功能,但是用户程序仍然需要针对特定问题的特定逻辑来定义自己的类。用户按照Java的语法规则,把所研究的问题描述成Java程序
11、中的类,以解决特定问题。进行Java程序设计,首先应学会怎样定义类。在Java程序中,用户自己定义类的一般格式如下:class 类名 数据成员 成员方法 图图6.2 类的图形表示类的图形表示 类名数据成员成员方法 可以看出,类的结构是由类说明和类体两部分组成的。类的说明部分由关键字class与类名组成,类名的命名遵循Java标识符的定义规则;类体是类声明中花括号所包括的全部内容,它又由数据成员(属性)和成员方法(方法)两部分组成。数据成员描述对象的属性;成员方法刻画对象的行为或动作,每一个成员方法确定一个功能或操作。图6.2为类的图形表示。详细分析课本上P253页的程序课堂实例1:本程序实现如
12、下功能:定义一个磁盘类,在类中定义属性和方法;在程序中实例化类的对象并且调用类的方法。(KT8-1.java)【要求】为磁盘类Disk添加下列属性和方法:私有属性m_size,代表磁盘容量,数据类型为float私有属性m_used,代表磁盘已用空间,数据类型为float公有方法getSize(),用于获取m_size的值公有方法setSize(),用于设置m_size的值公有方法getUsed(),用于获取m_used的值公有方法setUsed(),用于设置m_used的值方法GetAvailable(),用于计算磁盘剩余空间:若属性m_used的值小于属性m_size的值,方法返回一个字符串
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 对象 编程
限制150内