基于对象编程课件

上传人:阳*** 文档编号:82297088 上传时间:2022-04-28 格式:PPT 页数:43 大小:225.50KB
收藏 版权申诉 举报 下载
基于对象编程课件_第1页
第1页 / 共43页
基于对象编程课件_第2页
第2页 / 共43页
基于对象编程课件_第3页
第3页 / 共43页
资源描述:

《基于对象编程课件》由会员分享,可在线阅读,更多相关《基于对象编程课件(43页珍藏版)》请在装配图网上搜索。

1、基于对象编程PPT课件第七讲 基于对象编程基于对象编程PPT课件本章要点 面向对象的基本概念 类的创建和使用 对象的创建和使用 访问控制符基于对象编程PPT课件类与对象的概念类与对象的概念 程序设计所面对的问题域客观世界,是由许多事物构成的,这些事物既可以是有形的(比如一辆汽车),也可以是无形的(比如一次会议)。把客观世界中的事物映射到面向对象的程序设计中就是对象。对象是面向对象程序设计中用来描述客观事物的程序单位。客观世界中的许多对象,无论其属性还是其行为常常有许多共同性,抽象出这些对象的共同性便可以构成类。所以,类是对象的抽象和归纳,对象是类的实例。 基于对象编程PPT课件抽象原则抽象原则

2、 所谓抽象(abstraction),就是从被研究对象中舍弃个别的、非本质的、或与研究主旨无关的次要特征,而抽取与研究工作有关的实质性内容加以考察,形成对所研究问题正确的、简明扼要的认识。例如,“马”就是一个抽象的概念,实际上没有任何两匹马是完全相同的,但是我们舍弃了每匹马个体之间的差异,抽取其共同的、本质性的特征,就形成了“马”这个概念。 抽象是科学研究中经常使用的一种方法,是形成概念的必要手段。在计算机软件开发领域,抽象原则的运用非常广泛,概括起来,可分为过程抽象和数据抽象两类。 基于对象编程PPT课件 1. 过程抽象过程抽象 过程抽象是指:软件开发者可以把任何一个完成确定功能的操作序列都

3、看作是一个单一的实体,尽管它实际上可能是由一系列更低级的操作完成的。运用过程抽象,软件开发者可以把一个复杂的功能分解为一些子功能(模块),如果子功能仍比较复杂,则可以进一步分解。这使得开发者可以在不同的抽象层次上考虑问题,在较高层次上思考时可以不关心较低层次的实现细节。面向过程的程序设计采用的是过程抽象方法。 使用过程抽象有利于控制、降低整个程序的复杂度,但是,这种方法允许在全系统的范围内进行功能的描述,本身自由度大,难于规范化和标准化,不易保证软件的质量,而且操作起来也有一定难度。 基于对象编程PPT课件 2. 数据抽象数据抽象 数据抽象把系统中需要处理的数据和施加于这些数据之上的操作结合在

4、一起,根据功能、性质、作用等因素抽象成不同的抽象数据类型。每个抽象数据类型既包含了数据,也包含了针对这些数据的授权操作,并限定数据的值只能由这些操作来观察和修改。因此,数据抽象是相对于过程抽象更为严格、更为合理的抽象方法。 面向对象的程序设计就是采用数据抽象这一方法来构建程序中的类和对象的。它强调把数据和操作结合为一个不可分的系统单位对象,对象的外部只需要知道这个对象能做什么,而不必知道它是如何做的。 基于对象编程PPT课件对象对象 只要仔细研究程序设计所面对的问题域客观世界,我们就可以看到:客观世界是由一些具体的事物构成的,每个事物都具有自己的一组静态特征(属性)和一组动态特征(行为)。例如

5、,一辆汽车有颜色、型号、马力、生产厂家等静态特征,又具有行驶、转弯、停车等动态特征。把客观世界的这一事实映射到面向对象的程序设计中,则把问题域中的事物抽象成了对象(Object),事物的静态特征(属性)用一组数据来描述,事物的动态特征(行为)则用一组方法来刻画。因此,对象具有下述特征: 基于对象编程PPT课件 (1) 对象标识:即对象的名字,是用户和系统识别它的唯一标志。例如,汽车的牌照可作为每一辆汽车对象的标识。对象标识有“外部标识”和“内部标识”之分。外部标识供对象的定义者或使用者用,内部标识供系统内部唯一地识别每一个对象。在计算机世界中,我们可以把对象看成计算机存储器中一块可标识的区域,

6、它能保存固定或可变数目的数据(或数据的集合)。 (2) 属性:即一组数据,用来描述对象的静态特征。例如,汽车的颜色、型号、马力、生产厂家等。在Java程序中,把这一组数据称为数据成员。 基于对象编程PPT课件 (3) 方法:也称为服务或操作,它是对象动态特征(行为)的描述。每一个方法确定对象的一种行为或功能。例如,汽车的行驶、转弯、停车等动作可分别用move( )、rotate( )、stop( )等方法来描述。为避免混淆,把方法称为成员方法。 在Java程序中,类是创建对象的模板,对象是类的实例,任何一个对象都是隶属于某个类的。Java程序设计是从类的设计开始的,所以,在进一步讲述对象的知识

7、之前,必须先掌握类的概念。 基于对象编程PPT课件类类 对象是对事物的抽象,而类是对对象的抽象和归纳。人类在认识客观世界时经常采用的思维方法就是把众多的事物归纳成一些类。分类所依据的原则是抽象,即抽象出与当前目标有关的本质特征,而忽略那些与当前目标无关的非本质特征,从而找出事物的共性,把具有共同性质的事物归结为一类,得出一个抽象的概念类。 在面向对象的编程语言中,类是一个独立的程序单位,是具有相同属性和方法的一组对象的集合。类的概念使我们能对属于该类的全部对象进行统一的描述。例如,“树具有树根、树干、树枝和树叶,它能进行光合作用”。这个描述适合于所有的树,从而不必对每棵具体的树都进行一次这样的

8、描述。因此,在定义对象之前应先定义类。描述一个类需要指明下述三个方面内容: 基于对象编程PPT课件(1) 类标识:类的一个有别于其他类的名字。这是必不类标识:类的一个有别于其他类的名字。这是必不可少的。可少的。(2) 属性说明:用来描述相同对象的静态特征。属性说明:用来描述相同对象的静态特征。(3) 方法说明:用来描述相同对象的动态特征。方法说明:用来描述相同对象的动态特征。 基于对象编程PPT课件例如,下面是对dog类进行的描述:class dog / class指出这是一个类,dog是类标识 String name; int AverageWeight; 类的属性(静态特征) int Av

9、erageHeight; public void move( ) 类的方法(动态特征) public void ShowDog( ) dog类基于对象编程PPT课件类与对象的关系类与对象的关系 类给出了属于该类的全部对象的抽象定义,而对象则是符合这种定义的一个实体。类与对象之间的关系就如同一个模具与用这个模具铸造出来的铸件之间的关系一样。也就是说,我们可以把类与对象之间的关系看成是抽象与具体的关系。在面向对象的程序设计中,对象被称作类的一个实例(instance),而类是对象的模板(temp1ate)。类是多个实例的综合抽象,而实例又是类的个体实物。如图6.1所示为类与对象的关系。基于对象编程

10、PPT课件图6.1 类与对象的关系 抽象实例化对象:刘丽静态特征:刘丽 女 讲师 890.00动态特征:授课 评职称 调工资数据值执行的操作方法名数据结构类:教师属性:姓名 性别 职称 工资服务:授课 评职称 调工资基于对象编程PPT课件 定义类的一般格式定义类的一般格式 (1) 系统定义的类,即Java类库,它是系统定义好的类。类库是Java语言的重要组成部分。Java语言由语法规则和类库两部分组成,语法规则确定Java程序的书写规范;类库则提供了Java程序与运行它的系统软件(Java虚拟机)之间的接口。Java类库是一组由它的发明者SUN公司以及其他软件开发商编写好的Java程序模块,每

11、个模块通常对应一种特定的基本功能和任务,且这些模块都是经过严格测试的,因而也总是正确有效的。当自己编写的Java程序需要完成其中某一功能的时候,就可以直接利用这些现成的类库,而不需要一切从头编写,这样不仅可以提高编程效率,也可以保证软件的质量。 基于对象编程PPT课件 (2) 用户自己定义的类。系统定义的类虽然实现了许多常见的功能,但是用户程序仍然需要针对特定问题的特定逻辑来定义自己的类。用户按照Java的语法规则,把所研究的问题描述成Java程序中的类,以解决特定问题。进行Java程序设计,首先应学会怎样定义类。 在Java程序中,用户自己定义类的一般格式如下:class 类名 数据成员 成

12、员方法 基于对象编程PPT课件图图6.2 类的图形表示类的图形表示 类名数据成员成员方法基于对象编程PPT课件 可以看出,类的结构是由类说明和类体两部分组成的。类的说明部分由关键字class与类名组成,类名的命名遵循Java标识符的定义规则;类体是类声明中花括号所包括的全部内容,它又由数据成员(属性)和成员方法(方法)两部分组成。数据成员描述对象的属性;成员方法刻画对象的行为或动作,每一个成员方法确定一个功能或操作。图6.2为类的图形表示。 基于对象编程PPT课件详细分析课本上P253页的程序基于对象编程PPT课件课堂实例1:本程序实现如下功能:定义一个磁盘类,在类中定义属性和方法;在程序中实

13、例化类的对象并且调用类的方法。(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的值,方法返回一个字符串“磁盘剩余空间为:x”其中x表示属性m_si

14、ze减去m_used的值否则,方法返回一个字符串“磁盘已满”在程序主方法中实例化类的对象,调用方法输出磁盘剩余空间:实例化Disk的一个对象disk1,设置属性m_size的值为120,m_used的值为100,调用类的方法GetAvailable(),并输出方法返回的字符串实例化Disk的一个对象disk2,设置属性m_size的值为144,m_used的值为160,调用类的方法GetAvailable(),并输出方法返回的字符串 基于对象编程PPT课件类作用域 在类的作用域中,该类的所有方法都可以访问该类的成员,并且可以直接通过名称进行引用。 在类作用域外部,不能通过名称直接引用类成员。可

15、通过对象名.对象成员的形式引用可见的(如public)类成员。 对于方法中声明的变量,只在方法内有效(称为该方法的局部变量)。如果方法中声明的局部变量与类所声明的变量同名,则在该方法的作用域中,局部变量屏蔽类作用域变量。那么在方法中如何访问被屏蔽的类的实例变量呢?基于对象编程PPT课件this 在一个方法中(包括构造方法),this可以隐式地或显式地引用调用该方法的(将建立的)对象的实例变量和其他方法。 在一个方法中,如果方法的参数或局部变量与类的某个域同名,若想要访问这个类域,则应使用this;否则,将引用该方法的参数或局部变量。 良好的编程习惯:应尽量避免类的成员方法的参数或局部变量与类的

16、成员变量同名。基于对象编程PPT课件 在JAVA中,每个对象拥有自己的类实例变量的副本。而对于成员方法,即使建立了多个对象,JAVA只保存每个方法的惟一副本来节省内存,该类的所有对象都调用这个方法的惟一副本。基于对象编程PPT课件构造函数 我们从创建对象开始讲起。 创建对象通常包括声明对象、建立对象和初始化对象三步。 1声明对象声明对象 声明对象就是确定对象的名称,并指明该对象所属的类。声明对象的格式如下: 类名 对象名表;基于对象编程PPT课件构造函数类名 对象名表; 其中:类名是指对象所属类的名字,它是在声明类时定义的;对象名表是指一个或多个对象名,若为多个对象名时,用逗号进行分隔。声明对

17、象的作用是为将来的编译过程提供必要的信息。例如: class_name object_one,object_two; 这个语句声明了两个对象object_one,object_two,它们都是class_name类的对象。基于对象编程PPT课件构造函数 2建立对象建立对象 所谓建立对象,实际上就是用Java提供的new关键字为对象分配存储空间。在声明对象时,只确定了对象的名称和它所属的类,并没有为对象分配存储空间,此时对象还不是类的实例。只有通过建立对象这一步,才为对象分配内存,使该对象成为类的实例。建立对象的格式如下: 对象名=new 构造方法( ); 例如:object_one=new c

18、lass_name( ); object_two=new class_name( );基于对象编程PPT课件构造函数 也可以在声明对象的同时建立对象,这称为创建一个对象。创建对象的格式如下: 类名 对象名=new 构造方法( )例如:class_name object_one=new class_name( ); class_name object_two=new class_name( ); 其中:new是Java的关键字,也可将其称为运算符,因为new的作用是建立对象,为对象分配存储空间。执行new class_name( )将产生一个class_name( )类的实例(对象)。 基于对象

19、编程PPT课件构造函数 3. 初始化对象初始化对象 初始化对象是指由一个类生成一个对象时,为这个对象确定初始状态,即为它的数据成员赋初始值的过程,当然,它主要由一些赋值语句组成。由于初始化操作是最常用的操作之一,为简化这一过程,Java还提供了专用的方法来完成它,这个方法被称为构造方法。基于对象编程PPT课件构造函数 构造方法是一个类的方法中方法名与类名相同的类方法。每当使用new关键字创建一个对象,为新建对象开辟了内存空间之后,Java系统将自动调用构造方法初始化这个新建对象。构造方法是类的一种特殊方法,它的特殊性主要体现在以下几个方面:基于对象编程PPT课件构造函数 (1) 构造方法的方法

20、名与类名相同。 (2) 构造方法是类的方法,它能够简化对象数据成员的初始化操作。可以在构造函数中对指定的变量赋初值,与直接赋初值相比,构造函数灵活许多,并且不受变量先后次序的影响 (3) 不能对构造方法指定类型,它有隐含的返回值,该值由系统内部使用。 (4) 构造方法一般不能由编程人员显式地直接调用,在创建一个类的对象的同时,系统会自动调用该类的构造方法将新对象初始化。基于对象编程PPT课件构造函数 (5) 构造方法可以重载,一个类可以同时拥有几个构造函数,每个构造函数的参数集(参数个数和类型)不同,初始化对象时根据参数的不同自动选择合适的构造函数 。 (6) 如果用户在一个自定义类中未定义该

21、类的构造函数,系统将为这个类定义一个缺省的空构造函数。这个空构造函数没有形式参数,也没有任何具体语句,不能完成任何操作。但在创建一个类的新对象时,系统要调用该类的构造函数将新对象初始化。 (注意:如果用户在一个自定义类中定义了该类的构造函数,且都不是无参的构造函数,则程序试图调用一个无参的构造函数来初始化对象时,会出现编译错误。)基于对象编程PPT课件构造函数 分析课本上P262 图8.5和图8.6 图8.7为带有set和get方法的Time3类,通常我们将类中的成员变量声明为private,对成员变量的读取和设置通过set和get方法,且在set方法中要对成员变量的值进行合法性检查。对所有的

22、成员变量不一定都要设置set和get方法,根据实际需要而定。基于对象编程PPT课件组合 一个类的成员可以是其他类(特殊地,可以是自身)的对象。这种能力成为组合。 P271实例。基于对象编程PPT课件static类成员 带有static修饰符的方法称为静态方法(或类方法);反之称为实例方法(对象方法) 类似地,带有static修饰符的成员变量称为静态成员变量(静态域或类变量);反之称为实例变量。 类变量代表类范围的信息该类的所有对象共享同一块数据(同一块内存)。基于对象编程PPT课件static类成员 对于public的静态成员变量,若建立了类的对象,可通过 对象名.成员变量名 或 类名.成员变

23、量名 来进行访问。 对于public的静态方法,若建立了类的对象,可通过 对象名.方法名 或 类名.方法名 来进行访问。基于对象编程PPT课件static类成员 对于private的静态成员变量,若建立了类的对象,且有访问该private静态成员变量的方法(要求是static的?),可通过 对象名. 方法名 来进行访问。基于对象编程PPT课件static类成员 实际上,即使不存在任何类对象,静态类成员也可以存在只要类在执行时加载到内存中,就可以使用它们。 当不存在任何类对象时,对于public的静态成员变量,可通过类名.成员变量名 来进行访问。 当不存在任何类对象时,对于private的静态成

24、员变量,则必须建立一个public静态方法,可通过类名.方法名 来进行访问。基于对象编程PPT课件final修饰符 如果一个类的数据成员用final修饰符修饰,则这个数据成员就被限定为最终数据成员。最终数据成员可以在声明时进行初始化(赋值),也可以通过构造方法赋值,但不能在程序的其他部分赋值,它的值在程序的整个执行过程中是不能改变的。所以,也可以说用final修饰符修饰的数据成员是标识符常量。 用final修饰符说明常量时,需要注意以下几点: (1) 需要说明常量的数据类型并指出常量的具体值(只声明从未初始化也是一种错误)。 (2) 若一个类有多个对象,而某个数据成员是常量,最好将此常量声明为

25、static,即用static final两个修饰符修饰,这样做可节省空间。基于对象编程PPT课件创建包 JAVA API中的每个类和接口都属于包,它包含了一组相关的类和接口。 应用程序非常复杂时,我们可以将各种类模块归类封装到包当中,使得对相关类型的类管理更加有效 java中包的引入的主要原因是java本身跨平台特性的需求。因为java中的所有的资源也是以文件方式组织,这其中主要包含大量的类文件需要组织管理。java中同样采用了目录树形结构。虽然各种常见操作系统平台对文件的管理都是以目录树的形式的组织,但是它们对目录的分隔表达方式不同,为了区别于各种平台,Java中采用了.来分隔目录。 基于

26、对象编程PPT课件创建包 包语句的一般格式: package 包名 “包名”为要创建的包的名称,习惯上,包名使用小写字母 事实上,创建包就是要在当前的目录下创建一个子目录,用以存放.java文件生成的.class文件。在编译.java文件时,自动生成相应的子目录。既然创建包就是创建子目录,当然包也可创建成多级子目录的形式。基于对象编程PPT课件创建包 packge 包名1.包名2.包名3.包名4; 其中,“.”代表了目录分隔符,主要不用使用“”。 Java源代码文件的顺序如下:首先是packge声明(如果有的话),其次是import声明(如果有的话),然后是类声明。基于对象编程PPT课件引用包

27、中的类 (1)使用“包名.类名”(称为完全合法名) (2)使用import语句引入(加载)包的类,当使用被加载的类时,不必使用包名,系统会自动在加载的包中寻找基于对象编程PPT课件访问控制符 Java中有4种不同的访问控制符,它用于限定类、属性和方法能够被其他类访问的权限。访问控制符同一个类同一个包不同包的子类不同包非子类public缺省privateprotected(只用于成员变量)用用private protected修饰的修饰的成员变量成员变量可以被两种类访问和引用,一种是该类本身,可以被两种类访问和引用,一种是该类本身,一种是该类的所有子类。把同一个包内的非子类排除在可访问的范围之外,使得成一种是该类的所有子类。把同一个包内的非子类排除在可访问的范围之外,使得成员变量更专于具有明确继承关系的类。员变量更专于具有明确继承关系的类。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!