第4章+面向对象_第1页
第4章+面向对象_第2页
第4章+面向对象_第3页
第4章+面向对象_第4页
第4章+面向对象_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第4章面向对象下案例4-1类的继承一、案例描述1、考核知识点名称:类的继承2、练习目标了类继承的意义和作用掌握如何实现类的继承3、需求分析在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系.为了让初学者熟悉类的继承,本案例将演示类的继承并编写测试类验证子类是否拥有父类的可继承成员.4、设计思路实现原理1设计两个类Student和Teacher2抽取两个类共同的内容如:吃饭、睡觉封装到一个类Person中,各自特有的局部保存在各自类中.3让学生类继承Person类,老师类也继承Person.4编写测试类Example01,测试Student类和Teacher是否

2、继承了Person类的成员.、案例实现1、抽取父类Person,实现继承关系,代码如下:2、定义测试类Example01,代码如下:运行结果如图4-1所示.ExampleCHgwy112"C:ProgramFilesJavajdk1,8.0_221binjava.exename'?张十三吃饭睡觉name李老师吃饭睡觉进程完成,退出码0BTermiinalQ:Messages4iRun:=TODOOEventLog!编译成功完成in2m629m£(3分神之的8:1CRLFiUTF8:、君图4-1运行结果三、案例总结1、在java中,类只支持单继承,不允许多重继承.2、

3、多个类可以继承一个父类.3、在java中,多层继承是可以的,即一个父类可以再去继承另外的父类.案例4-2方法的重写、案例描述1、考核知识点名称:方法的重写2、练习目标了解方法重写的意义和作用掌握如何进行方法重写3、需求分析在继承关系中,子类会自动继承父类中定义的方法,但有时在子类中需要对继承的方法进行一些修改,即对父类的方法进行重写.为了让初学者掌握方法的重写,本案例将编写一个类NewPhone,该类继承Phone类并对Phone类的call()方法进行重写.4、设计思路(实现原理)1)定义一个类Phone,编写方法call(),表示打功能2)定义一个Phone的子类NewPhone,重写父类

4、call()方法,让它除了打功能外还具有开启语言和关闭语言功能.3)编写一个测试类Example02,分别调用重写前和重写后的call()方法、案例实现1、定义测试类Example02,代码如下:运行结果如图4-2所示.Run:ExampleO2gwy112三“一百,53年芸上一zEnvnisrM.:*C:ProgramFilesJavajdkL&0_221binjava*exe*.父类中的具有根本功能;可以打除了可以打还具有开启语言和关闭语言的功能进程完成,退出码0Terminalq;MessagesJ::RunSS;TODO集译成功完成in1£27ms片刻之前EwntL&

5、#169;g10:2CRLF:UTF-8:、图4-2运行结果三、案例总结1、在继承关系中,子类会自动继承父类中定义的方法,但有时在子类中需要对继承的方法进行一些修改,即对父类的方法进行重写.2、在子类中重写的方法需要和父类被重写的方法具有相同的方法名、参数列表记忆返回值类型.3、在对象调用的时候,只会调用子类重写的该方法,不会调用父类中的该方法.4、子类调用父类方法的时候,不能使用比父类中被重写的方法更严格的访问权限.例如:父类中方法是public,而重写的时候子类中方法就不能是private.案例4-3super访问父类成员变量、案例描述1、考核知识点名称:super关键字2、练习目标掌握使

6、用super关键字访问父类成员变量的方法3、需求分析子类可以继承父类的非私有成员变量,如果在子类中修改了继承自父类的成员变量的值,再想要访问父类的该成员变量时,可以通过super成员变量来实现.为了让初学者熟悉super关键字的用法,本案例将分别设计Fu类及其子类Zi,并在Zi类的方法中使用super关键字访问Fu类的成员变量.4、设计思路实现原理1编写一个Fu类,在类中定义无参构造和一个初始值为20的num成员变量.2Zi类继承Fu类,在子类中对num值进行了修改,同时在子类中定义无参构造和一个无返回值的method方法,method.方法中使用super关键字调用了Fu类的num成员变量.

7、3定义测试类Example03.、案例实现1、定义测试类Example03,代码如下:运行结果如图4-3所示.ExampleO3gwy112k=+ffC:ProgramFilesJavajdkl.8.0_221binjava.exez,.我是父类的构造函数我是子类的构造函数我是子类中修改后的mm-?50我是父类的num>50进程完成,退出码0QEventbog25:19CRLF:UTF-B;、去Runi=6:IODOBTerminal0:Messages口墉深成功完成in1561ms【片刻之酎】图4-3运行结果三、案例总结1、当子类重写父类的方法后,子类对象将无法访问父类被重写的方法.2

8、、使用super关键字访问父类的成员变量和成员方法的格式如下:Super.成员变量Super.成员方法(参数1参数2)案例4-4super访问父类成员方法、案例描述1、考核知识点名称:super关键字2、练习目标掌握如何使用super关键字访问父类成员方法3、需求分析子类重写父类的方法后,子类对象将无法访问父类被重写的方法,为了解决这个问题,在Java中专门提供了一个super关键字用于访问父类的成员.为了让初学者熟悉super关键字的用法,本案例将分别设计Fu类及其子类Zi,在Zi类的方法中使用super关键字访问Fu类的成员方法.4、设计思路(实现原理)1)编写一个Fu类,在类中定义无参构

9、造和一个无返回值的show()方法.2) Zi类继承Fu类,子类中定义无参构造和一个无返回值的method()方法,method()方法中使用super关键字调用了Fu类的show()方法.3)定义测试类Example04.、案例实现1、定义测试类Example04,代码如下:运行结果如图4-4所示.ExaHhple04gwyl12.一:ProgramFileaJavajdkl.8.0_221binjava.exe".+.父类构造函数子类构造函数|父类gho即方法子类method方法进程完成,退出码0,4:Run涪5;.口0BterminalQ:MessagesQlEventLogC

10、御译成功完成in1s109ms片刻之前3:7CRLFSUTF-S+、二三、案例总结1、当子类重写父类的方法后,子类对象将无法访问父类被重写的方法.2、使用super关键字访问父类的成员变量和成员方法的格式如下:Super.成员变量Super.成员方法参数1参数23、子类实例化时会默认调用父类无参构造方法,所以无特殊需求尽量在类中定义一个无参的构造方法,防止被继承时候出现错误.案例4-5super访问父类构造方法、案例描述1、考核知识点名称:super关键字2、练习目标掌握如何在子类构造方法中使用super关键字访问父类构造方法3、需求分析在子类的构造方法中一定会调用父类的某个构造方法,如果想指

11、定调用类父类中的哪个构造方法,可以使用super关键字来实现.为了让初学者掌握super关键字的用法,本案例将分别设计Fu类及其子类Zi,在Zi类的构造方法中使用super关键字访问Fu类的构造方法.4、设计思路实现原理1编写一个Fu类,在类中定义无参构造.2) Zi类继承Fu类,子类中也定义无参构造方法,在构造方法中使用super关键字调用Fu类的构造方法.3定义测试类Example05.、案例实现1、定义测试类Example05,代码如下:运行结果如图4-5所示.ntindsrM!SSHDAISCMExampleO5gwy1112x3&-#C:ProgramFilesJavajdk

12、l.8.0_221binjava.父类构造函数子类构造函数进程完成,退出码04:RunS6:TODOE3ITerminalS0;MessagesQEventLog的晓雁inis70ms1的之前320320铜.21行breaks1:1CRLFtUTF-8:、昼图4-5运行结果三、案例总结1、当子类重写父类的方法后,子类对象将无法访问父类被重写的方法.2、使用super关键字访问父类的成员变量和成员方法的格式如下:Super.成员变量Super.成员方法参数1参数23、子类实例化时会默认调用父类无参构造方法,所以无特殊需求尽量在类中定义一个无参的构造方法,防止被继承时候出现错误.案例4-6fina

13、l修饰类一、案例描述1、考核知识点名称:final关键字2、练习目标了解final关键子修饰类的特点掌握final关键字修饰类的方法3、需求分析Java中的类被final关键字修饰后,该类将不可以被继承,也就是不能够派生子类.为了让初学者熟悉final关键字修饰类的用法,本案例将分别设计两个类,一个是使用final关键字修饰的Fu类,另一个是继承Fu类的Zi类,验证final关键字修饰的类是否能被继承.4、设计思路实现原理1编写一个final关键字修饰的Fu类,类体可以为空2编写Zi类,Zi类继承于Fu类,类体可以为空3定义测试类Example06.、案例实现1、定义测试类Example06,

14、代码如下:运行结果如图4-6所示.辅ge交构建m一卜kO信息J占"比Errorsoccurredwhilecompilingmodule"chaptertM"O信息:jiffvac1,8,0221wasusedtocamipilejavasources9信息:2021/9/2616:17黄谋有2询误和0个SSin1555ms.*"D:ldea201SXPrajectXchapterMVrEVriVseigongwenyuanchapterO4ExampleOfiwy112.java>O由吴XI523心电找不邺符号符号:类为3S:类cn.shiime

15、i.gDngwenyuanhapte.ExampleO&gwy1124:RunJ=6:TODOE3TermiinalMDjMessagesQ编译完成有2个错误和0个警告inis55ms片刻之前233233办,17行breaks112:1QEventlagCRLFiUTF-8i%图4-6运行结果三、案例总结1、final修饰的类不能被继承.2、final修饰的方法不能被子类重写.3、final修饰的变量(成员变量和局部变量)是常量,只能赋值一次.案例4-7final修饰方法、案例描述1、考核知识点名称:final关键字2、练习目标掌握使用final关键字修饰方法3、需求分析子类可以继承父

16、类的成员方法,并在必要时对方法进行重写,增加了方法的扩展的同时也打破了方法的封装,如果我们希望父类中的某些方法不能被重写,这时就可以使用final关键字来修饰.为了让初学者掌握使用final关键字修饰方法,本案例将分别设计两个类,一个是Fu类,其中定义了final修饰的show()方法,另一个是继承Fu类的Zi类,在Zi类中对show()方法进行重写.4、设计思路(实现原理)1)编写一个Fu类,类中定义巾nal修饰的show()方法.2)编写Zi类,Zi类继承于Fu类,在Zi类中对show()方法进行重写3)定义测试类Example07,创立Zi类对象,并调用Zi类show()方法.、案例实现

17、1、定义测试类Example07,代码如下:运行结果如图4-7所示.Example07gwy112mjinQMes衰gs;构建x*一»+O信息:jav日:Errorsoccurredwhitecompilingmodule"chapterCWEnlunssFM«W1JEM0ALICMOla®:javac1.8.0_221wasusedtocompilejavasourcesQ信息;2021/9/2616:27-编译完成有1个错误和0个警告in1$107ms11Dilda2021ProjecthapteK)4sr£humekgcirigwerhy

18、uarichapterD4Example07gwy112.java'17java;fcnishumeifcgongwenytian-chapter04iZi07f:|:,Mshow0£cnishuimei,gongweriiyuainJiChapterQ4FuO7中的占hew.QEventLog16:2BCRLF;UTF-&t、国概薮盖的方法为ifinzl4:Run&TODO3Terminal三"?MwssagwE口编译完成有1个德馁和0个警告in15107ms片刻之前图4-7运行结果三、案例总结1、final修饰的类不能被继承.2、final修饰的

19、方法不能被子类重写.3、final修饰的变量成员变量和局部变量是常量,只能赋值一次.案例4-8final修饰局部变量、案例描述1、考核知识点名称:final关键字2、练习目标掌握使用final关键字修饰局部变量3、需求分析Java中被final修饰的变量为常量,它只能被赋值一次,也就是说final修饰的变量一旦被赋值,其值不能改变.为了让初学者掌握使用final关键字修饰局部变量,本案例将在类的方法中定义一个final修饰的局部变量,并试着对该变量重新赋值.4、设计思路实现原理1编写一个Example08类,类中定义类一个final修饰的局部变量age,为其赋初始值为18.2为age重新赋值为

20、20.、案例实现1、定义测试类Example08,代码如下:运行结果如图4-8所示.Messages;构建V-.卜O信息;施丫口:ErrorsoccurredwhilecompilingmodulechaptertM8.01&§L.jvac1,8.0_221wa>susedtocompilejavasources|O信息:2021/9/2616:33-编译克成肓1个错误和0个警告inis174msD:lldea201PrceetchapteKM5rccn&humeigongweriyuiairiichapter04ExarripleD8gwy112.pv<

21、iZ9错误",9java:无法为盘终造ag分配侑右-=011,神4:Run三6:TODOE2TerminalM0;Messages褊译完成有1个错误和0个警告inis174ms片刻之萌QEventLog17N172铜.9行breaks10:1CRLF士UTF-8:、图4-8运行结果三、案例总结1、final修饰的类不能被继承.2、final修饰的方法不能被子类重写.3、final修饰的变量成员变量和局部变量是常量,只能赋值一次.案例4-9final修饰成员变量、案例描述1、考核知识点名称:final关键字2、练习目标掌握使用final关键字修饰成员变量3、需求分析在Java中,fin

22、al修饰的变量表示常量,一经定义就不能重新赋值.为了让初学者熟悉final修饰变量的情况,本案例将使用final关键字修饰成员变量,观察其是否能够再次赋值.4、设计思路实现原理1编写一个Fu类,父类中定义一个变量X,并用final关键字修饰变量.2编写Zi类,Zi类继承于Fu类,在子类中对常量再赋新值.3定义测试类Example09,观察运行结果.、案例实现1、定义测试类Example09,代码如下:运行结果如图4-9所示.Example09gwy112Messages:南延x*2O信息:java:Errorsoccurredwhilecompilingmodule'chapterCK

23、'0信息:jav*1.8,0_221wdsusedtocompilejavasourcesO信息:2021/9/261&40=狷译完成育1个墙误和.个警告in1s13DAId#a2O18Pr0j«>ctchapterO4srccnslhiuimfrigiongweny,iijiianichapterO4ExampleO9gwy1l2.java9错误:qi用加忖无法为最终筠ax分配asvla'cMi输4:RunTODOE3ITerminalM0:MessagesD褊详完成后1个W误和Q个普告in1s13ms片刻之前QEventLog315ml5百.18行b

24、reaks11:30CRLF:UTF-8:、图4-9运行结果三、案例总结1、final修饰的类不能被继承.2、final修饰的方法不能被子类重写.3、final修饰的变量成员变量和局部变量是常量,只能赋值一次.案例4-10接口的实现、案例描述1、考核知识点名称:接口2、练习目标掌握如何实现接口3、需求分析由于接口中的方法都是抽象方法,因此不能通过实例化对象的方式来调用接口中的方法.此时需要定义一个类,并使用implements关键字实现接口中所有的方法.为了上初学者掌握如何实现接口,本案例将设计一个类,使用关键字implements实现Inter接口中的方法.4、设计思路实现原理1设计名为In

25、ter的接口,接口中定义一个初始值为20的num常量和method抽象方法.2编写Inter接口的实现类InterImpl,使用implements关键字实现接口中的方法.3编写测试类Example10,测试类中对接口的实现类进行实例化,并调用接口中的方法.、案例实现1、定义测试类Example10,代码如下:运行结果如图4-10所示.Interlmpl>method.Example10gwy1l2X中一"C:ProgramFilesJavajdkL8,0_221binjava.-“一.接口实现类中的的唯thod方法20进程完成,退出码0空Run律互:TODOSTerminal

26、-Q:MessagesQEventLog口瑞译成功完成in1s305rm片刻之前10:24CRLF:UTTiA母图4-10运行结果三、案例总结1、一个接口可以有多个父接口,它们之间用逗号隔开.2、java中使用接口是为了克服单继承的限制,接口中的变量默认使用“publicstaticfinal来修饰,即全局变量,接口中定义的方法默认使用"publicabstract来修饰,即抽象方法.,如果接口声明为public,那么接口中的变量和方法全部为public.3、接口中的方法都是抽象的,不能实例化对象.4、接口中的属性只能是常量.案例4-11接口的继承一、案例描述1、考核知识点名称:接口

27、一一接口的继承与实现2、练习目标掌握接口继承的方式及其特点3、需求分析在程序中,可以定义一个接口使用extends关键字去继承另一个接口.为了加深初学者对结果的理解,本案例将演示接口与接口、类与接口的继承和实现关系.4、设计思路(实现原理)1)设计接口Phone代表传统,在接口中定义receiveMessages()和call()抽象方法.2)设计接口SmartPhone代表智能,在接口中定义faceTime()方法,并使用extends关键字继承Phone接口,使其具有Phone接口的所有功能.3)设计类MIPhone表示小米,类中定义useMIUI()方法,并实现SmartPhone接口的

28、所有方法.4)编写测试类Example11,测试类中对MIPhone进行实例化,并访问小米具有的各种功能.二、案例实现1、定义测试类Example11,代码如下:运行结果如图4-11所示.Phanei1receiveMessagesQExample11gwyl12中C:ProgramFilesJavajdkl48.0_221binjava.©xe*.小米*可以发消息、可以打、可以看时间电进程完成,退出码04Run:=互:TODOBTerminal口编译成功充成in15215ms1分神之前QMessagesQEventLog755755字符,42行bg屁<11CRLF:UTFB:

29、»母三、案例总结1、一个类实现一个接口,必须给出接口中所有方法的实现,如果不能实现某方法,也必须写出一个空方法.2、接口中的方法都是抽象的,不能实例化对象.3、接口中的属性只能是常量.4、当一个类可以通过implement关键字继承多个接口,接口之间用逗号隔开,被实现的多个接口之间要用逗号隔开.5、一个接口可以通过extends关键字继承多个接口,接口之间要用逗号隔开.6、一个类在继承另一个类的同时还可以实现接口,此时,extends关键字必须位于implements关键字之前.案例4-12多态的作用、案例描述1、考核知识点名称:多态的概述2、练习目标了解多态的概念、多态的好处和弊端

30、掌握如何实现多态3、需求分析在Java中为了实现多态,允许使用一个父类类型的变量来引用一个子类类型的对象,根据被引用子类对象特征的不同,得到不同的运行结果.多态提升代码了的扩展性和可维护性.为了帮助初学者掌握如何实现多态,本案例将实现一个多态程序来演示如何实现多态.4、设计思路(实现原理)1)编写Animal接口,接口中定义sleep()方法.2)Cat类实现Animal接口的方法,并定义另一个方法catchMouse()3)编写测试类Example12,使Cat对象指向父类Animal的引用,并通过该引用调用sleep()方法.、案例实现1、定义测试类Example12,代码如下:运行结果如

31、图4-12所示.aunlundls;茴J5巴仁口32±1*Examplel2gwy112mamOExarriplle12gwy1l12>"C:ProgramFilesJavajdkl.8.0睡觉抓老鼠进程完成,退出码0Ct-12lbinjava*exe,.生Run港5;TODOSTerminalM:M庵5蛤口摘译成功完成inU313ms(1分轴之前QEventLog4J443423frbreaks19:16CRLF;UTlF-8il,图4-12运行结果三、案例总结1、在一个方法中,由于传入的参数类型不同导致执行结果各异的现象就是多态,继承是多态得以实现的根底.2、在多

32、态的学习中,涉及到将子类对象当作父类类型使用的情况.案例4-13对象的类型转换、案例描述1、考核知识点名称:对象的类型转换2、练习目标掌握如何实现对象的类型转换3、需求分析在多态的学习中,涉及到将子类对象当做父类类型使用的情况,这时进行强制类型转换可能会出现出错.为了让初学者熟悉对象的类型转换,本案例将演示一个子类与父类之间类型转换过程中出现的错误.编写一个接口Animal,接口中定义sleep()方法,编写两个类Cat和Pig分别实现接口,再编写一个测试类Example13实现对象的类型转换.4、设计思路(实现原理)1)编写Animal接口,接口中定义sleep()方法.2) Cat类和Pi

33、g类分别实现Animal接口的方法3)编写测试类Example13对对象的类型进行转换,使Cat向上转型为Animal类型,然后再让Animal类型转换为Pig类型.、案例实现1、定义测试类Example13,代码如下:运行结果如图4-13所示.Examplel3gwy112animaiShoutQExairiple13gvy112x."C:ProgramFilesJavajdklB8,0_221binjava,exe".»J睡猫觉thisanimalisnotapig进程完成,退出码0生Run5:TODOBTerminal-Q:Messages!编译成功完成in

34、1s346rmf片刻之前QEventSg34:10CRLF;UTlFfii“母图4-13运行结果三、案例总结1、将子类对象当作父类使用时不需要任何显式的声明,需要注意的是,此时不能通过父类变量去调用子类中的特有的方法.2、Java中的关键字instanceof,可以用来判断一个对象是否为某个类或接口的实例或者子类实例.语法格式为:对象或者对象引用变量instanceof类或者接口案例4-14Object类、案例描述1、考核知识点名称:Object类2、练习目标了解什么是Object类掌握Object类中常用方法的使用3、需求分析在JDK中提供了一个Object类,它是所有类的父类,即每个类都直

35、接或间接继承自该类.Object类自身的equals()方法比拟的是内存地址值,相当于“=",但是在实际开发中我们很少比拟两个对象的地址值,这时候常常就需要根据自身需求来重写equals()方法.为了方便初学者学习Object类,本案例将演示如何重写equals()方法.4、设计思路(实现原理)1)设计Student类,定义sid变量表示学号,重写equals()方法,判断进行比拟的两个学生对象学号是否相同,相同即为同一个学生,否那么不是.2)编写测试类Example14,创立两个Student的对象Lily和Lucy,并分别调用setter方法为学号赋值,最后通过打印语句,输出这两

36、个对象通过“二=和重写后的equals()方法比拟后的结果.、案例实现1、定义测试类Example14,代码如下:运行结果如图4-14所示.Student14Examplel4gwy112rrogrammesjavajaKi.o-u_zztrue115true117falsefalse进程完成,退出码0卜生Rue:=TODOTerminal式必网壮"购施in1s239ms1硼之前iDinjava,exe7:1CRLF;QEventLogUTF-8:、图4-14运行结果三、案例总结1、在JDK中提供了一个Object类,它是类层次结构的根类,每个类都直接或间接继承自该类,所有对象(包括

37、数组)都实现了这个类的方法.2、getclass().getName()代表返回对象所属类的类名.3、hashCode()代表返回该对象的哈希值.4、Integer.toHexString(hashCode()代表将对象的哈希值用十六进制表示.案例4-15匿名内部类(没讲,不做)、案例描述1、 、考核知识点名称:匿名内部类2、 练习目标了解什么是匿名内部类掌握如何使用匿名内部类3、 需求分析在学习接口时,如果方法的参数被定义为一个接口类型,那么就需要定义一个类来实现接口.除此之外,还可以使用匿名内部类来实现接口.为了让初学者能更好地理解什么是匿名内部类,本案例将演示如何实现一个匿名内部类.4、

38、 设计思路(实现原理)1)设计一个Inter接口,接口中定义show()和method.方法.2)设计一个Outer类,在类的function()方法中使用匿名内部类实现Inter接口并实例化,并调用show()和method()方法.3)最后编写一个测试类Example15,创立Outer的对象并调用function.方法.案例4-16try.catch语句一、案例描述1、 、考核知识点名称:try.catch和finally2、 练习目标掌握如何使用try.catch语句进行异常处理3、 需求分析Java中提供了一种对异常进行处理的方式一一异常捕获,异常捕获通常使用trycatch语句.为

39、了让初学者熟悉trycatch语句,本案例将演示如何使用trycatch语句处理遍历时可能出现的数组角标越界异常.4、 设计思路(实现原理)1) )编写测试类Example16,2) 在类Example16中定义名为arr的int类型一维数组,遍历数组输出每次遍历出的值,结束输出“over.3) 使用try.catch语句处理遍历时可能出现的数组角标越界异常,如果出现异常输出“角标越界.、案例实现1、定义测试类Example16,代码如下:运行结果如图4-16所示.txdimplel6gwy112mdinQExample16gwy11IZl:rrogramrliesjavajaKi.3.u_z

40、ziomjava.exe1234over角标越界进程完成,退出码04:iRun-套TODOIBTeFminalHQ:Messagies.QEventLog朝成功就in1£641m片刻之前38938015breaks12-23CRLF;UTF国:母图4-16运行结果三、案例总结1、Exception类称为异常类,它表示程序本身可以处理的错误.格式如下:Try程序代码块catchExceptionTypeException类及其子类e对ExceptionType的处理3、需要注意的是,在try代码块中,发生异常语句后面的代码快是不会被执行的.案例4-17finally语句、案例描述1、考

41、核知识点名称:trycatch和finally2、练习目标掌握如何使用finally语句3、需求分析在程序中,有时候我们希望有些语句无论程序是否发生异常都要执行,这时就可以在trycatch语句后,加一个finally代码块.为了让初学者熟悉finally代码块,本案例将演示如何使用finally语句来保证不管是否异常都输出一句话.4、设计思路实现原理1编写Example17类2在main方法中使用tycatchfinally语句,其中try语句块中编写可能发生异常的语句10/0,如果不异常输出“程序继续,如果异常在catch语句块中会输出“出异常类3在finally语句块中输出“释放资源,保

42、证不管是否异常一定输出此语句、案例实现1、定义测试类Example17,代码如下:Exampllel7gwy1112mairiOEMarmple17gwyl12"C二'ProgramFi1esJavajdk1.8.0_22lbinJava.exe出异常类释放资源Enlunjlm总Jsw'c:口AJFLL.河程序继续向下执行进程完成,退出码0生Run:=SiTOOOBTerminal企M电灯晒“QEv«n(Log.墉悻成功完成徜1S17.皿时刻之前377377字符,15行breaks10:19CRIF;UTTS;、稔图4-17运行结果三、案例总结1、Exception类称为异常类,它表示程序本身可以处理的错误.格式如下:Try程序代码块catch(ExceptionType(Exception类及其子类)e)对ExceptionType的处理3、需要注意的是,在try代码块中,发生异常语句后面的代码快是不会被执行的.、4、需要注意的是,finally中的代码块在一种情况下是不会执行的,那就是trycatch中执行了System.exit(O)语句.5、S

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论