《编写问题域类》PPT课件.ppt

上传人:za****8 文档编号:12723209 上传时间:2020-05-19 格式:PPT 页数:57 大小:536.56KB
返回 下载 相关 举报
《编写问题域类》PPT课件.ppt_第1页
第1页 / 共57页
《编写问题域类》PPT课件.ppt_第2页
第2页 / 共57页
《编写问题域类》PPT课件.ppt_第3页
第3页 / 共57页
点击查看更多>>
资源描述
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方法中验证传递给它的值长度是否在120范围内。如果某方法准备创建和抛出异常,其头必须包含关键字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,本章小结,本章对书店管理系统中的问题域类进行了定义及测试。问题域(PD)类代表要在系统中表示的真实对象,应为每个PD类编写问题域类定义。方法签名由方法名和参数表组成。Java通过方法签名而不是通过方法名来标识方法。同一个类中参数表不同的同名方法称为重载方法。Java中引入了异常类来处理程序运行过程中可能发生的错误。异常类是Throwable类或其子类,异常则是异常类的实例。,57,Thanks!,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!