Java程序设计实训教程 教学课件 ppt 作者 汪志达 主编 程 琪 陈小冬 副主编 第2章 Java面向对象编程基础(下)

上传人:E**** 文档编号:89189177 上传时间:2019-05-21 格式:PPT 页数:21 大小:211.50KB
返回 下载 相关 举报
Java程序设计实训教程 教学课件 ppt 作者 汪志达 主编 程 琪 陈小冬 副主编 第2章  Java面向对象编程基础(下)_第1页
第1页 / 共21页
Java程序设计实训教程 教学课件 ppt 作者 汪志达 主编 程 琪 陈小冬 副主编 第2章  Java面向对象编程基础(下)_第2页
第2页 / 共21页
Java程序设计实训教程 教学课件 ppt 作者 汪志达 主编 程 琪 陈小冬 副主编 第2章  Java面向对象编程基础(下)_第3页
第3页 / 共21页
Java程序设计实训教程 教学课件 ppt 作者 汪志达 主编 程 琪 陈小冬 副主编 第2章  Java面向对象编程基础(下)_第4页
第4页 / 共21页
Java程序设计实训教程 教学课件 ppt 作者 汪志达 主编 程 琪 陈小冬 副主编 第2章  Java面向对象编程基础(下)_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《Java程序设计实训教程 教学课件 ppt 作者 汪志达 主编 程 琪 陈小冬 副主编 第2章 Java面向对象编程基础(下)》由会员分享,可在线阅读,更多相关《Java程序设计实训教程 教学课件 ppt 作者 汪志达 主编 程 琪 陈小冬 副主编 第2章 Java面向对象编程基础(下)(21页珍藏版)》请在金锄头文库上搜索。

1、2.9继承与重载,一、继承 1.继承的定义: 继承实际上是存在于面向对象程序的两个类之间的一种关系。当一个类拥有另一个类的所有数据和操作时,就称这两个类之间具有继承关系。被继承的类称为父类或超类,继承了父类或超类所有特性的类称为子类。 2.一个父类可以同时拥有多个子类 3.使用继承的主要优点,是使得程序结构清晰,降低编码和维护的工作量。,4.单重继承和多重继承的概念: 单重继承:是指任何一个类都只有一个单一的父类; 多重继承:是指一个类可以有一个以上的父类,它的域和方法从所有这些父类中继承。Java语言,出于安全、可靠性的考虑,仅支持单重继承。 小结:类是可以继承的,可以从一个类(父类)定义出

2、另一个类(子类)。子类可在父类的基础上,修改或增加特性。继承可简化子类的代码,并使父类的代码得到重用。,二、类的多态 多态技术:域的隐藏(hide)、方法的覆盖(override)、方法的重载(Overload) 1.域的隐藏:在子类中,对从父类继承来的方法重新定义,使用类名或、对象名或this、super区别。 2.方法的覆盖:在子类中,对从父类继承来的方法重新定义。使用类名或对象名或this或super区分父类与子类的方法。 3.重载指的是,在同一个类中,定义多个同名的形式参数不同的方法,以增强方法对参数的适应性。重载的方法使用参数的个数或类型来区分。 例2.2 课本57页,2.10 包,

3、包是一种松散的类的集合,它把各种类组织在一起,一般不要求处于同一个包中的类有明确的相互关系,同一个包中的类在缺省情况下可以相互访问,为了方便编程和管理,通常把需要在一起工作的类放在一个包里。 1.创建包 创建包的语句需要使用关键字package, 而且应该是整个.java文件的第一个语句。 Package EmpClasses; Package EmpSystem.EmpClasses; 步骤: (1)以包名创建目录。 (2)编辑预定义类,保存为以类名为文件名的.java文件,文件的第一条语句应为: package 包名; (3)编译,得到相应的.class文件。 (4)将.class文件放到

4、包(目录)中。 预定义类及其成员一般应具有public修饰符,1. 包的使用 (1).使用包名、类名前缀 EmpClasses.ManagerEmployee m_Mgr=null; (2).加载需要使用的类 import EmpClasses.ManagerEmployee; (3).加载其他包 import EmpClasses. import java.awt.*; 3. Java的系统程序包 Java的程序包又称类库或API包,以“java.”开头 (1)java.lang (2)java.util (3)java.io (4) (5)java.awt (6)java.applet (

5、7)java.security,2.11接口,引论:接口是Java特有的功能,也是对C+进行改进的一个重要方面,它以巧妙的设计实现了C+中的多重继承功能,避免了多重继承造成的复杂性,使程序结构更加清晰,类层次结构更加合理,更符合实际问题的本质,它的英文名称是interface,用来组织应用中的各类并调节它们之间的关系。,一、事物之间的联系:(1).有形的联系 (2)无形的联系 例 1.有形的联系:两栋楼房之间通过一条走廊连接在一起。 办公楼教学楼 走廊(接口) Teaching_Builder Office_Builder,教学楼,办公楼,例2: 无形的联系 AirPlane 可燃油的(接口)

6、 SteamBoat,飞 机,每每公里耗油量 每公里耗油量 剩余油量 加油操作 获取剩余油量,轮 船,二、接口的基本概念 Java中的接口在语法上有些相似于类,它定义了若干的抽象方法和常量,形成一个属性集合,该属性集合通常代表了某一组功能的实现。 主要功能:实现类似于类的多重继承的功能。 多重继承例子:,Sales,Manager,SalesManager,二、Java中为何要引入接口 1.多重继承的不足之处: 当类之间存在多重继承的时候,会形成网状结构,使类之间的关系错综复杂,不便于类的设计者进行设计,也不便于程序员在编程过程中使用,单重继承的类层次结构是树状结构,这种类层次关系简单明了。因

7、而Java的设计者去掉了C+中的多重继承,而保留了单重继承。 2.由于Java只支持单重继承,所以Java程序中的类层次结构是树状结构,但这种结构在处理复杂问题时会力不从心。 单重继承使子类继承的方法越来越多,造成子类成员的膨胀、庞杂,难以掌握。 3.接口的解决方案: 把用于完成特定功能的若干属性组织成相对独立的属性集合,凡是需要实现这种特定功能的类都可以继承这个属性集合并在类内使用它,这种属性集合就是接口。,四、接口是怎样实现了多重继承的功能的 Java中的一个类获取某一个接口定义的功能,并不是直接继承这个接口中的方法来实现的,因为接口中的属性都是常量,接口中的方法都是没有方法体的抽象方法,

8、接口定义的仅仅是实现某一特定功能的一组对外接口和规范,并没有真正实现这个功能。这个功能的真正实现是在“继承”了这个接口的各个类中完成的,由这些类中的方法体来具体定义接口中个抽象方法的方法体。 对接口功能的“继承”称为“实现”。,二、接口的声明 public interface 接口名 extends 父接口名列表 /接口体; /常量域声明 public static final 域类型 域名=常量值; /抽象方法声明 public abstract 返回值类型 方法名(参数列表) 1.接口可理解为一种特殊的类,是由常量和抽象方法组成的特殊类,类利用接口实际上获得多个父类。 2.访问控制符只有p

9、ublic,用public修饰的接口是公共接口,可以被所有的类和接口使用,没有public修饰符修饰的接口只能被同一个包中的其他类和接口利用。,3.接口具有继承性,定义一个接口时可以通过extends关键字声明该接口是某个已存在的父接口的派生接口,一个接口可以有一个以上的父接口,它们之间用逗号分隔。 4.接口体:接口中的属性都是用final修饰符修饰的常量(public static final) 接口中的方法都是用abstract修饰的抽象方法(public abstract) 例: public interface Consumeable final double money_kilo=1

10、2; abstract double getMoneyHour(); ,二、接口的实现 接口的声明仅仅给出了抽象方法,而具体地实现接口所规定的功能,则需某个类为接口中的抽象方法书写语句并定义实在的方法体,称为实现这个接口。 (1)在类的声明部分,用implements关键字声明该类将要实现哪些接口 (2)在实现某接口的类里定义抽象方法的方法体 (3)接口的抽象方法,其访问限制符都已指定是public,类在实现方法时,必须显示地使用public 修饰符。,Class airplaneboat implements Consumeable private int load_persons; pri

11、vate double count_perhour; private double product_cost; airplaneboat(double number,double count,double cost) load_persons=number; count_perhour=count; product_cost=cost; public double getmoneyhour() return money_kilo*count_perhour; public int getmaxpersons return load_persons; ,2.12错误、异常及其处理,一、 编程中的

12、错误 错误:编译错误、运行错误 1.编译错误是所编写的程序存在语法错误,未能通过由源代码到目标码的编译过程 2.运行错误:是在程序的运行过程中产生的错误,分为:系统运行错误和逻辑运行错误 系统错误是指程序在执行过程中引发了操作系统的问题。 逻辑运行错误是指程序不能实现编程人员的设计意图和设计功能而产生的错误。,二、异常与异常类 1.异常(Exception),又称为例外,是特殊的运行错误对象,对应着Java语言特定的运行错误处理机制。 2.异常类结构与组成 Java的异常类是处理运行时错误的特殊类,所有的异常类都是系统类库中的Exception类的子类。用户自定义异常类也必须是Exceptio

13、n类的子类。 例:课本66页 Throwable是所有异常类的父类,Exception和Error是Throwable的直接子类,而RuntimeException是Exception的子类。 3. 系统定义的运行异常 Java中定义了很多异常类,每个异常类都代表了一种运行错误,类中包含了该运行错误的信息和处理错误的方法等内容。 课本66页,4.用户自定义的异常 系统定义的异常主要用来处理系统可以预见的较常见的运行错误,对于某个应用所特有的运行错误,则需要编程人员根据程序的特殊逻辑在用户程序里自己创建用户自定义的异常类和异常对象,用户自定义异常主要用来处理用户程序中特定的逻辑运行错误。 创建用

14、户自定义异常时,一般需要完成如下的工作: (1)声明一个新的异常类,使之以Exception类或其他某个已经存在的系统异常类或用户异常类为父类。 (2)为新的异常类定义属性和方法,或重载父类的属性和方法,使这些属性和方法能够体现该类所对应的错误的信息。,三、异常的抛出 Java程序在运行时如果引发了一个可识别的错误,就会产生一个与该错误相对应的异常类的对象,这个过程被称为异常的抛出。 1.系统自动抛出的异常 2.语句抛出的异常 用户自定义的异常不可能依靠系统自动抛出,必须借助于throw语句来抛出。 语法:thows 异常类表 例2.5:课本70页,四、异常的处理 异常的处理主要包括捕捉异常、程序流程的跳转和异常处理语句块的定义。 异常对象是依靠以catch语句为标志的异常处理语句块来捕捉和处理的 语法结构: try 可能产生异常的语句(包括调用异常方法) catch(异常类 对象) 异常处理 例2.3 课本68页,例2.4自定义异常例子,在设计catch块处理不同的异常时,应注意: (1) catch中的语句应根据异常的不同执行不同的操作,通常是打印异常和错误的信息。 (2)在处理多异常时应注意认真设计各catch块的排列顺序,处理较常见和较具体的异常的catch块应放在前面,可与多种异常相匹配的 (3)catch块应放在较后的位置,

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

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

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