Java程序设计课件(高晓黎)第4章类与对象.ppt
《Java程序设计课件(高晓黎)第4章类与对象.ppt》由会员分享,可在线阅读,更多相关《Java程序设计课件(高晓黎)第4章类与对象.ppt(79页珍藏版)》请在三一办公上搜索。
1、第4章 类与对象:构建Java程序的基石,目 录,面向对象程序设计,静态类与静态成员要素,Java修饰符,Java类的基本结构,构造方法,类的描述,重点与难点点拨,经典练习题,本章知识重点,构造方法,this关键字,类成员要素的访问控制修饰符,static修饰符与静态成员要素,面向对象程序设计的优越性,本章知识难点,Java类成员要素的访问控制修饰符,面向对象几大特征:抽象、封装、继承、多态,Java类的访问控制修饰符,类与对象的关系,面向对象的基本概念,对象(Object)是一个应用系统中用来描述客观事物的实体,是具有特定属性(数据)和行为(方法)的基本运行单位,是类的一个特定状态下的实例。
2、类(Class)是Java代码的基本组织模块,是用以描述一组具有共同属性和行为的对象的基本原型,是对这组对象的概括、归纳与抽象表达,它定义了本类对象所应拥有的状态属性集及操作这组属性的行为方法集。,面向对象的基本概念(续1),接口(Interface)是一种只包含常量与抽象方法的特殊的类,是Java语言用以实现类间多重继承功能的唯一手段。接口定义了一组特定功能的对外接口与规范,而并不真正实现这种功能,功能的实现留待给实现这一接口的各个类来完成,包(Package)是用来容纳一组相关类与接口的容器,是Java语言组织与管理类与接口的一种机制,类与对象的关系,类与对象之间的关系,类似于数据类型与变
3、量之间的关系;一个类可以生成无数个不同的对象,每个对象属性值不同,其状态也不同。,可以用计算机模型与计算机实体之间的关系来更形象地说明类与对象之间的关系:将冯诺依曼计算机模型看作计算机类,则不同品牌的计算机实体就对应为一个个的实例对象。,类与对象的关系示例,计算机模型与计算机实体之间的关系:,面向对象编程(OOP),从问题域客观存在的事物出发,将这些现实世界的物理实体抽象成概念世界的抽象数据类,再进一步将这种抽象数据类转换为计算机世界的类(Class);类刻画出实体所具有的状态信息与所能发挥的功能信息,是创建对象时所遵循的模板(Template)。对类进行实例化,就生成一个个的对象,对象对应于
4、各个具体事物,是程序运行过程中实际发挥作用的类的独立内存映像。借助于类与对象这两个面向对象程序中最基本的要素,按照尽可能符合人类自然思维的方式,来构造软件系统,这就是所谓的面向对象程序设计(OOP),OOP的逻辑过程,面向对象设计分析的完整过程如图所示:,面向对象的重要特征,面向对象具有以下几个重要特征:,抽象,封装与隐藏,继承,多态性,抽象,抽象(Abstraction):抽象是面向对象编程的起点,也是其最本质的特征之一。抽象的广义概念是这样定义的:从研究对象中提取与当前目标主题关系最密切的主要方面,而忽略掉与目标无关的那些方面或关系不大的细枝末节,从而更充分地注意与当前目标有关的方面,更明
5、确地突出主题,这就是抽象,抽象示例,下图阐述了如何由自然界众多的动物实体出发,经过抽象的处理过程,最终得到动物这一概念,封装,封装(Encapsulation):封装也可称为信息隐藏(Information Hiding),是通过对象的方法来访问与改变对象属性的一种机制。封装是面向对象的一个重要原则,其实现的核心是将类的属性与相关的操作捆绑起来,包装成不可分割的、独立的对象实体,将内部的数据与实现细节尽可能隐蔽起来,使外部用户不能直接操纵对象的内部信息,只能通过对象对外提供的施加有一定限制的访问接口来使用对象,封装示例,下图形象地说明了一个类的封装原理。类对数据与行为的封装是借助于不同级别的访
6、问修饰符来达到控制目的的,继承,继承(Inheritance):继承是指从已有的类中可以派生出若干个新类,已有类称为基类或父类,新类称为派生类或子类;子类将自动地获得基类的属性与方法,从而不需再重复定义这些属性与方法;当然子类还可以修改父类的方法或增加新的方法,从而使自己更适合特殊的需要。类之间的继承关系是现实世界中遗传关系的直接模拟,多态性,多态性(Polymorphism):是指允许不同类的对象对同一消息作出各自的响应,即以统一的风格处理已存在的数据及相关的操作。多态性语言具有灵活、抽象、行为共享、代码共享的优势,较好地解决了应用程序中方法同名的问题,OOP的优越性,从面向过程到面向对象是
7、程序设计技术的一个飞跃。人们之所以要采用面向对象的程序设计技术,其目的在于:,提升程序的开发与运行效率,提高代码的可重用性(或者称为复用性),按照与人类习惯思维方法一致的原则开发系统,OOP的优越性(续),提高程序的可靠性与可维护性 提高程序的可扩展性 增强程序的可控制性,总之,面向对象的程序设计,能够有效分解、降低问题的难度与复杂性,提高整个求解过程的可控制性、可监视性和可维护性,从而获得较高的开发效率与可靠效果,类的描述,类是Java语言面向对象编程的基本要素,用来定义对象的成员变量(数据域)与成员方法(功能接口),描述对象的状态与行为。Java程序将你要表达的实体或概念封装在类中,并由类
8、来创建诸多的实例对象。应用程序的功能便是由各个类的实例对象,通过调用各类方法来实现的,类的定义,修饰符public、说明了类的属性,abstract与final为互斥的两个修饰符,不能同时出现于一个类的声明中,类的声明用来指定该类的访问修饰符、类的名称、父类名称及实现接口等属性。声明类的完整形式为:,关键字class后面跟随类名,类名为用户定义的标识符,最好以意义完整且易于识别的英文单词或短句作为类名;类名应该能够描述出类的特征或作用,类名的第一个字母通常要大写,如果类名由多个单词组成,则每一单词的首字母一般都要大写。,类的定义(续1),关键字extends后面跟随着基类的名称关键字imple
9、ments后面跟随着类所实现的接口列表带有的项目为可选项目,只在必要时才出现类体是类功能实现的主体,是Java语句的集合 语句块界定符及标识出类体的有效范围,类的描述(续2),成员变量与成员方法为类的成员要素,简称为成员(Member),它们又分为静态/类的要素与对象/实例要素两类。构造方法是具有与类名相同名称的一种特殊方法,用来创建类的对象及对成员变量进行初始化。构造方法为可选项,当省略时,Java系统会按缺省方式定义空白的构造方法。,类定义示例,【例】建立一个公共的最终类日期类,其声明格式如下:public final class Date/类的声明语句/类体定义 private int
10、year;/年 private int month;/月 private int day;/日 public initDate(int y,int m,int d)/初始化年、月、日值的方法 public showDate()/显示当前日期值的方法,属性声明,public、protected与private为成员要素访问修饰符,用来限制成员变量或成员方法的访问范围,即哪些类或对象可以访问此成员要素 static用来指明成员要素为静态要素,又称类要素,以区别于对象要素。静态要素存在于类的定义区域中,属于类本身的成员,每个该类的对象共享这些要素,属性:成员变量(Member Variable)又称
11、为属性(Attribute)或数据域(Data Field),用来描述类对象的数据特征,属性声明(续1),final用于成员变量时,是作为定义最终变量即常量的关键字。这类常量的值不允许修改。transient(意为短暂的、瞬时的)为专门用于成员变量的修饰符,表明成员变量为临时变量 volatile(意为可变的、不稳定的)为专门用于成员变量的修饰符,声明一个被多个并发线程所共享的变量,属性声明(续2),成员变量名为用户自定义的标识符,一般为有意义的英文单词或单词组合;变量名的第一个字母小写,如果包含多个单词,则其他单词的首字母大写,一个定义语句可以声明一个成员变量,也可以声明多个同类型的成员变量
12、。不同类型的成员变量必须分别由不同的声明语句来定义,属性定义示例,【例】定义一个包访问属性的学生类Student,该类继承自Person父类,其属性包含学号、姓名、性别、出生日期、电子邮箱、手机号码、QQ号码、通讯地址等。类的定义代码如下:,class Student extends Person/extends关键字后面跟随基类名称 public String code;/学号 public String name;/姓名 public boolean sex;/性别 private Date birthDate;/出生日期 private String Email;/电子邮箱 privat
13、e String cellPhoneCode;/手机号码 private int QQCode;/QQ号码 public String address;/通讯地址/成员方法定义(略),类的成员方法,成员方法(Member Method)又称为功能接口(Function Interface),简称为方法(Method),是类对象与外界的接口,描述了类对象的行为方式,反应了对象的行为特征,特别是对属性进行操作的特征。成员方法对成员变量的操作主要体现在以下两个方面:,改变对象的属性,一般记为set方法,返回对象的属性,一般记为get方法,成员方法的定义,类中可定义多个方法,其定义格式如下:成员方法修
14、饰符(参数列表)throws/方法体定义/用于描绘方法行为的Java语句成员方法展开的定义格式为:public|protected|private static final|abstract native synchronized(参数列表)throws,成员方法的定义(续1),(参数列表)子句为成员方法的方法原型。,其中成员方法修饰符为修饰成员方法的一些关键字,习惯上,人们将属性的声明放在方法之前,但Java编译器对属性和方法的位置并无规定,二者出现的顺序可以任意进行组合穿插,在语法上都是有效的,成员方法的定义(续2),throws 子句称为声明抛出异常短语。如果定义的方法可能会产生自己不准
15、备处理或无法处理的异常(异常为一种严重级别不高的错误),应该在方法定义语句的throws子句中声明抛弃该类异常,使得该类异常对象从调用的栈中向上传播,直到有合适的方法捕获到它并给予处理为止,构造方法,构造方法(Constructor)又称为构造器,熟悉C+语言的人习惯上称之为构造函数。构造方法是类用来创建对象、初始化类的属性的一种特殊方法,它本身不属于类的成员方法。,Java中所有的类至少都要有一个构造方法,即使用户不明确地定义,系统也会为该类生成一个默认构造方法或缺省构造方法,这种缺省构造方法没有任何参数,且方法体为空。,构造方法的特殊性,构造方法没有返回类型,也不允许返回void类型。,构
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 程序设计 课件 高晓黎 对象

链接地址:https://www.31ppt.com/p-5374363.html