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