Java 程序设计 教学课件 ppt 作者 杨厚群 主编 chap4

上传人:E**** 文档编号:89395620 上传时间:2019-05-24 格式:PPT 页数:51 大小:211.50KB
返回 下载 相关 举报
Java 程序设计 教学课件 ppt 作者 杨厚群 主编 chap4_第1页
第1页 / 共51页
Java 程序设计 教学课件 ppt 作者 杨厚群 主编 chap4_第2页
第2页 / 共51页
Java 程序设计 教学课件 ppt 作者 杨厚群 主编 chap4_第3页
第3页 / 共51页
Java 程序设计 教学课件 ppt 作者 杨厚群 主编 chap4_第4页
第4页 / 共51页
Java 程序设计 教学课件 ppt 作者 杨厚群 主编 chap4_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《Java 程序设计 教学课件 ppt 作者 杨厚群 主编 chap4》由会员分享,可在线阅读,更多相关《Java 程序设计 教学课件 ppt 作者 杨厚群 主编 chap4(51页珍藏版)》请在金锄头文库上搜索。

1、第4章 对象和类,程序是计算机不可缺少的一部分,如何有效地编写程序是人们一直以来最关心的问题,而以怎样的思想来指导程序设计显得更加重要。程序设计方法经历了几个发展阶段,而面向对象程序设计是如今最流行、最高效的程序设计方法。每一种思想和方法都有其自身的概念和相应原理,对象和类是面向对象程序设计中最基本、也是最重要的两个概念。本章主要介绍面向对象程序设计的一些基本概念和原理,重点是如何用Java语言来表示这些概念。,本章要点,面向对象程序设计的基本概念; 类的创建; 对象实例化; 访问属性控制; 静态成员; final,this和null; 包; 综合应用示例。,4.1 面向对象程序设计,要掌握一

2、种新思想、新方法,必须先了解其相关概念。本节主要介绍面向对象的一些相关概念及其相应的描述工具UML图,是一些比较抽象的概念,读者在学习的过程中,可以先了解其基本内容,待学完后面相关内容后再回来仔细揣摩和体会,必定能收到良好的效果。,所谓面向对象的方法学,就是使我们分析、设计和实现一个系统的方法尽可能地接近我们认识一个系统的方法。包括: 面向对象的分析(OOA, Object-Oriented Analysis) 面向对象的设计(OOD, Object-Oriented Design) 面向对象的程序设计(OOPL, Object-Oriented Program),4.1 面向对象程序设计 面

3、向对象的概念,1.抽象 抽象是人类认识世界的一种方式,它是指从同类型的众多事物中舍弃个别的、非本质的属性和行为,而抽取出共同的、本质的属性和行为的过程。抽象主要包括事物属性的抽象和行为的抽象两种类型。 属性可用来描述事物在某时刻的状态,常用具体的数据来表示。 行为的抽象也称功能的抽象,即舍弃个别的功能,而抽取共同的功能的过程。,4.1 面向对象程序设计 面向对象的概念,2.封装 封装是将事物的属性和行为聚集在一起而形成一个完整的逻辑单元的一种机制。利用这种机制可以实现信息的隐藏,外界客体只能通过封装向外界提供的接口才能访问描述事物属性的内部数据。这即有利于客体本身的维护,也有利于保护信息的安全

4、。,4.1 面向对象程序设计 面向对象的概念,3.对象 对象有两个层次的概念: 现实生活中对象指的是客观世界的实体; 程序中对象就是一组变量和相关方法的集合,其中变量表明对象的状态,方法表明对象所具有的行为。,4.1 面向对象程序设计 面向对象的概念,4.类 (1).类是描述对象的“基本原型”,它定义一类对象所能拥有的数据和能完成的操作。在面向对象的程序设计中,类是程序的基本单元。 (2).相似的对象可以归并到同一个类中去,就像传统语言中的变量与类型关系一样。 (3).程序中的对象是类的一个实例,是一个软件单元,它由一组结构化的数据和在其上的一组操作构成。,4.1 面向对象程序设计 面向对象的

5、概念,4.1 面向对象程序设计 面向对象的概念,4.类,5.消息 消息是一个对象要求另一个对象实施某项操作的请求,它反映了对象之间的信息通信机制,是不同的对象之间信息交流的惟一手段。发送消息的对象称为发送者,接收消息的对象称为接收者。在一条消息中,包含消息的接收者和要求接收者完成某项操作的请求,它只告诉接收者需完成什么,而不指示接收者如何完成,具体的操作过程由接收者自行决定。这样,对象之间就不会相互干扰,保证了系统的模块性。,4.1 面向对象程序设计 面向对象的概念,6. 继承 在介绍类的概念时提到,可由已有的类派生出新的类,派生出的新类称为子类,原来的类称为父类,从而构成了类的层次关系,也就

6、是类的继承。继承是类之间的一种常见关 系,它是一种“一般”和“特殊”的关系。,4.1 面向对象程序设计 面向对象的概念,7. 多态 在前面介绍消息时提到,不同的对象对相同的消息可有不同的解释,这就形成多态性。其实,简单地讲,多态性表示同一种事物的多种形态。如开拖拉机、开小轿车、开大卡车、开火车、开摩托艇、开飞机等都是“开”,但作用的对象不同,其具体动作也各不相同。但都表达了一个相同的含义-开交通工具,这也是一种抽象,而且是更高一级的抽象。,4.1 面向对象程序设计 面向对象的概念,8. UML静态视图简介 UML是统一建模语言(Unified Modeling Language)的缩写形式。它

7、是一个通用的可视化建模语言,用于对软件进行描述、可视化处理、构造和建立软件系统制品的文档等。UML适用于各种软件开发方法、软件生命周期的各个阶段、各种应用领域以及各种开发工具,是一种总结了以往建模技术的经验并吸收了当今优秀成果的标准建模方法。 视图是UML中最核心、最主要的内容。视图分结构视图和动态视图两大类。静态视图是UML中用得很广泛的一种视图,它是结构视图中的一种。静态视图主要由类及类之间的相互关系组成,这些相互关系主要包括:关联、聚集和泛化等。,4.1 面向对象程序设计 面向对象的概念,8. UML静态视图简介 静态视图用类图来实现。在类图中类用矩形框来表示,它的属性和行为分别列在分格

8、中。关系用类框之间的连线来表示,不同的关系用连线和连线两端的修饰符来区别。表4-1是静态视图中经常使用的部分符号及说明,在此列出,以供参考。下面对关联、聚集和泛化分别各举一例,以说明如何绘制这些图。 如在学校里,一个教师(Teacher)可以教授多门课(Course),一门课可由多位教师讲授,因此,存在一个教师授课(TeacherCourse)的关联(如图4.2所示)。在由界面元素构成的人机界面模型中,框架窗口、菜单、工具条等就形成一种聚集关系(如图4.3所示)。,4.1 面向对象程序设计 面向对象的概念,8. UML静态视图简介,4.1 面向对象程序设计 面向对象的概念,图4.2,8. UM

9、L静态视图简介,4.1 面向对象程序设计 面向对象的概念,图4.3,类认为是用于创建对象的模板,是数据类型,当在同样的类和创建或实例化对象时,就认为它们具有相同的类型。在Java中,类的来源分为系统类和用户类两部分。系统类是由Java系统所带的或由第三方厂家所提供的类,对用户来说只需直接使用即可,这也是在实际编程时所经常使用的方法。然而有时系统类的功能不能满足用户的需求,这就需要用户自已创建所需的类,这就是用户类。本节就如何创建用户类及其相关的知识作详细介绍。,4.2 创建用户类,类定义的完整形式为: public abstract final class ClassName extends

10、SuperClassName implements InterFaceName ClassBody 方括号表示可选择的部分,其余部分是必不可少的。所以,定义类的最简单的形式为: class ClassName ClassBody ,4.2 创建用户类类的定义,类定义的完整形式简要说明 : 1class是Java中用来定义一个类的关键字。 2ClassName为所定义的类名,其命名符合Java中变量的命名规则,一般第一个字母大写,每个单词首字母也大写,但并不是必需的。 3大括号内的内容(ClassBody)为类体,是用来描述类的属性和行为的核心部分,一般它由两部分组成:一部分是属性的描述,常用数

11、据类型来表示;另一部分是行为的描述,常用方法来表示,有的书上将此处讲的方法也称为函数。对应地,一般将类体前的部分称为类的头部。,4.2 创建用户类类的定义,类定义的完整形式简要说明 : 4定义类时,在类的头部若有关键字public修饰符,则说明该类可以被任何包中的类所使用。若没有public的修饰,则该类只能被同一个包中的其它类所使用。 5abstract 抽象类和final 最终类 abstract和final是Java中分别用来定义抽象类和最终类的两个关键字,有关它们的细节内容在后续章节介绍。 6extends 继承和implements 接口 类的继承与接口的实现在java中所用的关键字

12、分别为extends和implements,有关类的继承与接口的实现请参阅后续章节。,4.2 创建用户类类的定义,成员变量的定义与初始化 : 成员变量是用于描述实体的状态属性的。成员变量分为实例变量和类变量两类。实例变量在类实例化对象时,为每个对象都分配相应的变量空间,对同一个实例变量,每个对象都持有一个副本,改变了其中一个对象的实例变量值,其余对象的实例变量值不受影响。类变量也称为静态变量,一个类变量被同一个类所实例化的所有对象共享,当改变了其中一个对象的类变量值时,其余对象的类变量值也相应被改变,因为它们共享的是同一个量。 实例变量定义的最简单的形式为: DataType variable

13、Name;,4.2 创建用户类成员变量的定义与初始化,成员变量的定义与初始化 : 实例变量定义的最简单的形式为: DataType variableName; 其中,DataType是变量的数据类型,它可以是前面介绍过的Java中的基本数据类型,如boolean,byte,short,long,double等,也可以是复杂的数据类型,如数组,字符串等,还可以是某个类。当变量的类型是某个类时,我们一般将其直接称为某类的一个对象或实例。而varialbleName是变量名,它的命名规则在前面章节已述。实例变量名第一个字母一般小写,其余每个单词首字母大字;而静态变量名的每个字母一般都大写,但不是必需

14、的。,4.2 创建用户类成员变量的定义与初始化,成员方法的定义: 成员方法相当于其它程序语言中所说的函数或过程,它是一组执行语句序列。一个成员方法一般完成一个相应的功能。前面提到:类是具有相同或相似属性和行为的一组对象的共同描述,而对象是一组信息及其操作的描述。这里的“信息”是通过前面所讲的成员变量来描述的,而“操作”正是通过成员方法来具体实现的。 定义一个成员方法的最简单的形式为: ResultType MethodName(parameterLists) MethodBody ,4.2 创建用户类成员方法的定义,关于成员方法说明 : 1.在方法体内部也可定义变量。一般将方法体内定义的变量称

15、为局部变量。局部变量的作用域为其所在的方法体内,出了方法体就无效了。局部变量是没有默认值的,当出现对局部变量未赋值而直接引用其值时,编译不能通过。 2.成员变量与局部变量的第二个重要区别在于:成员变量可以先定义后引用,也可以先引用后定义;而局部变量必须是先定义后引用,也即定义必须在引用之前。 3.当不需要任何返回值时,方法的返回值类型用void。void是java中的一个关键字,它表示没有任何返回值。注意,没有任何返回值不等于是null。同时,返回值类型说明符对于成员方法而言不能省略。,4.2 创建用户类成员方法的定义,关于成员方法说明 : 4.成员方法不能嵌套定义,但可嵌套调用,同时,Jav

16、a中的成员方法在定义时还支持递归调用。 5.通常方法的名称在它的类中是唯一的。但是在三种情况下,方法可能与类或子类中的其他方法同名:覆盖方法、隐藏方法和名称重载。如果方法与超类中的方法有相同的标记或返回类型,那么它就覆盖或隐藏了超类方法。如果同一个类中的多个名称相同但特征标(参数个数、参数的数据类型或对象)不同的方法称为重载。,4.2 创建用户类成员方法的定义,成员方法的重载: 简单地说,成员方法的重载就是在同一个类中,可同时定义名称相同的多个成员方法,而方法的参数类型、个数、顺序至少有一个不同,方法的返回类型和修饰符也可以不同 。,4.2 创建用户类成员方法的重载,public class Point int x,y; int getX()return x; int getY()return y; void setXY(int dx,int dy)x=dx;y=dy;/用两个整型值来描述x、y坐标 void setXY(Point p)x=p.getX()

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号