java接口异常实例.ppt
《java接口异常实例.ppt》由会员分享,可在线阅读,更多相关《java接口异常实例.ppt(22页珍藏版)》请在装配图网上搜索。
1 java接口 异常与实例分析 计算机学院通信软件工程中心张艳梅ymzhang 2 本章主要内容 1 我什么时候要用接口 2 java如何控制异常 3 Pong游戏设计分析 3 3 保险公司的例子具有车辆保险 人员保险 公司保险等多种保险业务 各种业务的保险对象不同 但在对外提供服务方面具有相似性 如都需要计算保险费 premium 等 因此可声明一个Insurable接口 并使不同的类实现这个接口在UML图中 实现接口用带有空三角形的虚线表示 1 接口的作用 例1 4 4 声明一个接口Shape2D 可利用它来实现二维的几何形状类Circle和Rectangle把计算面积的方法声明在接口里pi值是常量 把它声明在接口的数据成员里interfaceShape2D 声明Shape2D接口finaldoublepi 3 14 数据成员一定要初始化publicabstractdoublearea 抽象方法 1 接口的作用 例2 5 5 1 接口的作用 不相关类的公共接口 接口的作用实现多继承 同时免除C 中的多继承那样的复杂性建立类和类之间的 协议 契约关系实现不同类之间的公共操作 具体实现不同 但性质相同 实现不同类之间的常量共享 6 6 1 使用接口 共享方法名和常量 classCircleimplementsShape2D doubleradius publicCircle doubler radius r publicdoublearea return pi radius radius classRectangleimplementsShape2D intwidth height publicRectangle intw inth width w height h publicdoublearea return width height 声明Circle与Rectangle两个类实现Shape2D接口 7 7 MovableObject接口定义了所有 可移动对象 能做的事情publicinterfaceMovableObject publicbooleanstart publicvoidstop publicbooleanturn intdegrees publicdoublefuelRemaining publicvoidchangeSpeed doublekmPerHour 1 使用接口 仅仅超类 8 8 Plane Car Train Boat分别实现MovableObject接口publicclassPlaneimplementsMovableObject publicintseatCapacity publicCompanyowner publicDatelastRepairDate 实现MovalbelObject接口的所有方法publicbooleanstart 启动飞机 成功则返回true publicvoidstop 停止 publicbooleanturn intdegrees 转向 成功则返回true publicdoublefuelRemaining 返回燃料剩余量 publicvoidchangeSpeed doublekmPerHour 改变速度 plane类自己的方法 publicDategetLastRepairDate publicdoublecalculateWindResistance 1 使用接口 统一公共接口 9 9 为MovableObjects安装遥控器 remotecontrol publicclassRemoteControl privateMovableObjectmachine RemoteControl MovableObjectm machine m 按下 启动 按钮 publicvoidstart booleanokay machine start if okay display NoResponseonstart remoteControl构造方法的形参类型为MovableObject 它可以是Plane Car Train Boat 等等 1 使用接口 不受限的拼装对象 PlaneaPlane newPlane RemoteControlcontrol newRemoteControl aPlane control start 10 10 1 我什么时候要用接口 可以用上java类库接口时 请尽量使用java第三方接口 合用则用自己设计接口 实现不同类之间的公共操作 具体实现不同 但性质相同 为某种特性的对象留出扩展空间 可以拼装以后开发的任意对象 11 2 面对程序的异常 谁能保证提供足够彻底的错误检验代码 用传统语言编程时 程序员只能通过函数的返回值来发出错误信息 从而使错误数值传播遍及整个程序 java 抛出异常 java有专门的异常处理函数 采用传统途径处理错误时 处理错误的代码直接建立在算法中 使常规执行流程不再清晰可见 12 2 java异常处理的思想 打棒球 掷出异常 象产生一个java对象一样产生一个异常对象 停止程序正常执行 捕获异常 异常处理机制根据异常信息寻找异常处理函数 进行错误处理 13 2 java的异常体系 Object java lang java io Throwable 数组索引值小于0或大于数组长度 被0除或其他数学问题 RuntimeException Exception IOException 安全异常 用不恰当的参数调用 数组或字符串的索引值越界 引用没有实例化的对象 使用非法的数组格式 String索引值小于0或大于其长度 数组存储问题 异常类一般放在掷出这些异常的包中 不可控异常 可控异常 一个包含可能掷出可控异常的表达式的方法 必须处理或者声明这个异常 否则编译器就会产生语法错误 14 2 java如何处理程序的异常 程序设计的一个重要要素就是健壮性和安全性 java默认的异常处理JVM将捕获没有被程序自身捕获的任何不可控异常 对你自己的练习程序或者尚在调试阶段的软件来说 最好的设计也许只是使用java的默认异常处理 商业软件不能由用户来修复错误 应该包含针对可能出现的真正异常情况的异常处理程序 15 2 java的默认异常处理 publicclassCalcAverage publicdoubleavgFirstN intN intsum 0 for intk 1 k N k sum k returnsum N avgFirstN CalcAverageclasspublicclassCalcAvgTest publicstaticvoidmain Stringargs CalcAverageca newCalcAverage System out println AVG ca avgFirstN 0 main Exceptioninthread main java lang ArithmeticException byzeroatCalcAverage avgFirstN CompiledCode atCalcAvgTest main CalcAvgTest java 5 16 2 程序员自己编的异常处理 publicclassIntFieldextendsJTextField publicintgetInt throwsNumberFormatException 文本框输入 可能掷出非数字的异常returnInteger parseInt gettext getInt IntFieldclass窗口类中该文本框的事件响应方法publicvoidactionPerformed ActionEvente try userInt intField getInt message Youinput userInt Thankyou catch NumbetFormatExceptionex JOptionPane showMessageDialog this Theinputmustbeaninteger Pleasere enter 弹出错误提示对话框 finally repaint 捕获数字非法的异常后提示用户重新输入 17 3 实例分析 Pong游戏 问题 自行运动的小球 用户控制的球拍 遇到墙壁或球拍会反方向弹起并发出 Pong 声 寻找对象 寻找名词小球 球拍 视频界面寻找动词 行为 小球运动 球拍上下移动 球拍击中小球 窗口组件JApplet 墙壁 球拍 墙壁 墙壁 小球 18 3 Pong游戏的对象设计视图 使用 PongApplet Paddle Ball 19 3 Paddle类设计 什么数据什么行为对象接口应该隐藏实现细节 类名 Paddle角色 计算球拍上下的移动属性 隐藏private applet PongApplet对象引用locationX Y 球拍位置gameAreaHeight 画板高度行为 Paddle app 建立和主界面对象关系getX 报告当前横坐标getY 报告当前纵坐标moveUp 向上移动moveDown 向下移动resetLocation 复位 20 3 Ball类设计 什么数据什么行为对象接口应该隐藏实现细节 类名 Ball角色 后台算法 计算小球运动轨迹属性 隐藏private applet PongApplet对象引用locationX Y 位置坐标directionX Y 运动方向topWall rightWall 墙壁位置行为 Ball app 建立和主界面对象关系getX 报告当前横坐标getY 报告当前纵坐标move 自动运动run 线程入口 执行move 21 3 PongApplet类设计 什么数据什么行为对象接口应该隐藏实现细节 类名 PonaApplet角色 管理游戏界面 按键响应属性 隐藏private ball 小球对象paddle 球拍对象行为 init 成员对象创建和线程启动paint g 绘制游戏画面ballHitsPaddle 判断是否击中keyPressed e 响应上下键移动球拍keyTyped e 未使用keyReleased e 未使用 22 开始复习 确认你已提交6次作业 回顾课程所讲的内容 以概念为主 然后在图形编程和输入输出部分的基本类和代码结构上留意- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 接口 异常 实例
装配图网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文