第9章 Java高级编程.ppt
上传人:qw****27 上传时间:2024-09-12 格式:PPT 页数:37 大小:433KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

第9章 Java高级编程.ppt

第9章Java高级编程.ppt

预览

免费试读已结束,剩余 27 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

学习导读本章将介绍Java语言中的一些高级特性:异常处理、多线程机制、流式IO以及网络通信,其中每个部分都能扩展成一个专题。读者在本章学习到的只是其中很小的一部分,但是能够从中了解一些基本概念和基本操作,为今后的深入学习打下基础。异常处理提供对错误的捕捉和处理机制;多线程机制使得程序的多个子任务能够“同时”执行;流式IO提供了对输入输出的读写机制;网络通信特性允许Java程序通过Socket实现底层通信,并利用Java提供的扩展组件实现高层服务。教学重点与难点:9.1异常处理9.1.1异常分类Throwable类派生出两个分支:Error和Exception。Error类被认为是不能恢复的严重错误,如系统内部错误和资源耗尽错误等。不应该抛出这种类型的错误,而是让程序中断。Exception类定义可能遇到的轻微错误,分为派生自RuntimeException类的异常和非派生自RuntimeException类的异常。这时,可以写代码来处理异常并继续程序执行,而不是让程序中断。区分RuntimeException和非RuntimeException的规则是:编程错误导致RuntimeException,如被零除、数组越界访问、空指针访问等;而其他异常则是由于意外情况而发生的,如试图读取文件结尾以后的数据、试图打开错误的URL、试图根据并不代表已存在类的字符串来查找Class对象等。9.1.2方法如何抛出异常9.1.3捕获及处理异常【例9.1】捕获并处理异常程序代码见ExceptionExample.java。运行结果如下:CaughttheException!!!e.getMessage():IthrowanException!!!9.1.4创建自己的异常类9.2Java多线程机制【例9.5】未使用多线程技术的记数程序。当单击“Start”按钮时,屏幕上方的文本框开始递增记数,从0到49。在记数过程单击“Close”按钮不起作用,记数依然在继续;当记数到49时,程序退出。程序代码见Counter.java。运行结果如下:9.2.1创建线程9.2.2实现多个线程9.2.3线程的状态9.2.4Runnable接口【例9.8】通过Runnable接口实现多个记数线程的Java小应用程序。程序代码见CounterThreadApplet.java。运行结果如下:9.3流式输入输出与文件处理9.3.1Java输入输出类库继承关系处理Unicode字符的输入输出类层次关系图9.3.2基于标准输入输出的IO操作【例9.10】结构化数据输入输出和数据分隔。程序代码见TokenStandardIO.java。运行结果如下:Thenumber1personEntername,age,salary,married(optional),pleaseseparatefieldsby':‘张三:25:3000Thenumber2personEntername,age,salary,married(optional),pleaseseparatefieldsby':‘李四:35:10000:YThenumber3personEntername,age,salary,married(optional),pleaseseparatefieldsby':‘王大五:30:4000:FOutputthedataofpeople:Thenumber1personname:张三;age:25;salary:3000.0;married:FThenumber2personname:李四;age:35;salary:10000.0;married:YThenumber3personname:王大五;age:30;salary:4000.0;married:F9.3.3文件读写及随机访问Thenumber1personEntername,age,salary,married(optional),pleaseseparatefieldsby':'张三:25:3000Thenumber2personEntername,age,salary,married(optional),pleaseseparatefieldsby':'李四:35:10000:YThenumber3personEntername,age,salary,married(optional),pleaseseparatefieldsby':'王大五:30:4000:FPerson[name=张三,age=25,salary=3000.0,married=F]Person[name=李四,age=35,salary=10000.0