




已阅读5页,还剩52页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 第8章编写问题域类 定义问题域类使用静态变量和静态方法编写自定义方法格式化输出重载方法异常及其处理 2 8 1定义问题域类 本节定义校内书店管理系统的问题域类Book类和BookStore类 编写单独的类对问题域类进行测试 3 8 1定义问题域类 定义Book类 1 4 8 1定义问题域类 定义Book类 2 5 8 1定义问题域类 定义Book类 3 6 8 1定义问题域类 测试Book类可以编写一个名为TesterOne的测试类来模拟客户程序发送消息 以调用Book类定义中的方法 测试类TesterOne仅有一个主方法main 7 8 1定义问题域类 TesterOne 8 8 1定义问题域类 TesterOne 9 8 1定义问题域类 顺序图 10 8 1定义问题域类 编写构造方法对于每个类 系统都提供默认的构造方法 除此之外 程序员还可以自定义构造方法 但只要程序员定义了有参的构造方法 系统就不再提供默认的构造方法了 因此 在这种情况下 默认的构造方法也需要明确定义 11 8 1定义问题域类 编写构造方法默认的构造方法publicBook 12 8 1定义问题域类 编写构造方法自定义构造方法 13 8 1定义问题域类 编写TesterTwo类对构造方法进行测试 14 8 1定义问题域类 编写toString方法 15 8 1定义问题域类 编写TesterThree类对toString方法进行测试 16 8 1定义问题域类 定义BookStore类 17 8 1定义问题域类 定义BookStore类 18 8 1定义问题域类 定义BookStore类 19 8 1定义问题域类 测试BookStore类 20 8 2使用静态变量和静态方法 静态变量即类变量 静态方法即类方法 使用static关键字定义类变量和类方法 21 8 2使用静态变量和静态方法 静态变量在BookStore类中加入静态变量open和close来表示书店营业开始时间 结束时间 单位为小时 9 5表示9点30分 22 8 2使用静态变量和静态方法 静态变量编写get方法返回open和close的值 23 8 2使用静态变量和静态方法 编写测试类TesterFive 24 8 3编写自定义方法 增加自定义方法storeHours 25 8 3编写自定义方法 编写测试类TesterSix 26 8 4格式化输出 使用java text包中的DecimalFormat类进行格式化输出 DecimalFormat类对带有逗号和小数点 但未带有时间单位的数字进行格式化 27 8 4格式化输出 在使用DecimalFormat类之前 需要使用import语句将java text包导入 importjava text 当需要对多个数据进行格式化时 可以首先生成DecimalFormat类的实例 再使用format方法 具体如下 DecimalFormatdf newDecimalFormat 0 0小时 df format 12 8 28 8 4格式化输出 DecimalFormat测试程序 29 8 5重载方法 方法签名 methodsignature 包括方法名及参数表 Java通过签名来识别方法 重载方法 overloadedmethod 是指在一个类中可以定义多个方法 它们具有相同的方法名及不同的参数表 构造方法可以重载 自定义方法也可以重载 30 8 5重载方法 重载构造方法增加具有两个参数的构造方法 31 8 5重载方法 重载构造方法测试程序 32 8 5重载方法 重载自定义方法在特殊情况下 书店在中午吃饭时间不营业 下面编写storeHours方法的第二个版本 接收不营业时间值 33 8 5重载方法 重载自定义方法测试程序 34 8 6异常及其处理 异常的概念异常 Exception 是特殊的运行错误对象 又称为例外 所谓错误 是在程序运行过程中发生的异常事件 比如除0溢出 数组越界 文件找不到等 为了提高程序的健壮性 程序设计时 必须考虑到可能发生的异常事件 并做出相应的处理 35 8 6异常及其处理 异常的概念可以将程序中的错误分为三种类型 即编译错误 运行错误及逻辑错误 编译错误是编译器能够检测到的错误 一般为语法错误 运行错误是运行时产生的错误 如被零除 数组下标越界等 逻辑错误是机器本身无法检测的 需要对程序逻辑及运行结果进行人工分析 36 8 6异常及其处理 异常的概念Java系统中根据错误的严重程度不同 将错误分为两类 错误 是致命性的 即程序遇到了非常严重的不正常状态 不能简单地恢复执行 异常 是非致命性的 通过某种修正后 程序还能继续执行 37 8 6异常及其处理 异常类和错误类的层次结构所有的包中都声明了异常类和错误类 Exception类是所有异常类的父类 Error类是所有错误类的父类 这两个类同时又是Throwable的子类 38 8 6异常及其处理 异常类和错误类的层次结构 非检查型异常 39 8 6异常及其处理 编译器对继承自RuntimeException的异常不做检查 Java类必须在方法签名中声明它们所抛出的任何检查型异常 对于任何方法 如果它调用的方法抛出一个类型为E的检查型异常 那么调用者就必须捕获E或者也声明抛出E 或者E的一个父类 对此编译器要进行检查 40 8 6异常及其处理 Java预定义了一些常见异常 ArithmeticExceptionNullPointerExceptionArrayIndexOutOfBoundsExceptionFileNotFoundExceptionIOException 41 8 6异常及其处理 异常处理对于检查型异常 Java强迫程序必须进行处理 处理方法有两种 声明抛出异常 捕获异常 42 8 6异常及其处理 声明抛出异常如果程序员不想在当前方法内处理异常 可以使用throws子句声明将异常抛出到调用方法中 43 8 6异常及其处理 声明抛出异常一个throws子句也可以声明抛出多个异常 44 8 6异常及其处理 声明抛出异常调用程序也可以将异常再抛给它的调用程序 45 8 6异常及其处理 声明抛出异常如果所有的方法都选择了抛出此异常 最后Java虚拟机 JVM 将捕获它 输出相关的错误信息 在异常被抛出的过程中 任何方法都可以捕获异常并进行相应的处理 46 8 6异常及其处理 捕获异常使用try语句括住可能抛出异常的代码段 用catch语句指明要捕获的异常及相应的处理代码 47 8 6异常及其处理 捕获异常Finally块的作用通常用于释放资源 Finally不是必须的部分 如果有finally部分 不论是否捕获到异常 总要执行finally后面的语句 在有多个异常需要捕获时 异常类型的顺序很重要 特殊的异常类型要放在前面 一般的异常类型要放在后面 48 8 6异常及其处理 捕获异常在catch块的内部 可用下面的方法处理异常对象 getMessage 返回一个字符串 对发生的异常进行描述 printStackTrace 给出方法的调用序列 一直到异常的产生位置 49 8 6异常及其处理 生成异常对象在Java程序中 通过throw语句生成异常对象 例如 thrownewThrowableObject ArithmeticExceptione newArithmeticException throwe 50 8 6异常及其处理 生成异常对象编写TrowTester类对throw语句进行测试 51 8 6异常及其处理 telephone的数据验证假设书店的座机号码位数不会超过20 则需要在电话的set方法中验证传递给它的值长度是否在1 20范围内 如果某方法准备创建和抛出异常 其头必须包含关键字throws 52 8 6异常及其处理 telephone的数据验证扩展后的setTelephone 方法头为 publicvoidsetTelephone Stringtelephone throwsException然后在此方法中检查接收到的参数值是否在合理的范围内 如果超出了范围 则对Exception进行实例化 并将其抛出 53 8 6异常及其处理 telephone的数据验证修改后的setTelephone 方法 54 8 6异常及其处理 telephone的数据验证由于在构造方法中调用了setTelephone方法 因此 需要对构造方法进行修改如下 55 8 6异常及其处理 telephone的数据验证异常捕获测试代码 56 本章小结 本章对书店
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江西名师联盟2025年数学高三上期末学业水平测试试题
- 四川省彭州市彭州中学2025-2026学年数学高三第一学期期末质量跟踪监视模拟试题
- 驾驶员安全培训考试试题及答案
- 输血知识应知应会试题(含答案)
- 2025江西抚州赣东学院招聘高层次人才55人考试参考试题及答案解析
- 2025江西吉安市遂川县城控人力资源管理有限公司招聘广告技术主管1人备考练习试题及答案解析
- 2025嘉兴市质量技术检验检测有限公司招聘7人考试参考试题及答案解析
- 2025年合肥长丰县杜集镇中心学校临聘教师公开招聘1人备考练习题库及答案解析
- 2025年山东职业学院第一批高技能人才公开招聘(10名)备考练习题库及答案解析
- 2025云南大理弥渡县密祉镇卫生院招聘编外人员1人备考练习题库及答案解析
- 中华护理学会老年人误吸的预防团体标准解读
- 《捷众电梯推介书》课件
- 日光性皮炎的临床特征
- 中建型钢混凝土结构施工方案
- 《头发头皮生理学》课件
- 糖尿病处方点评
- 数据中心暖通培训
- 九上道法【思维导图+重点句+考点问题+典型例题】
- 有限空间专项安全检查表
- 广西桂林旅游文化宣传城市介绍文旅科普美食
- 学校栏杆工程施工方案
评论
0/150
提交评论