版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数学与计算科学学院实 验 报 告实验项目名称 JAVA调试环境及异常处理程序 所属课程名称 面向对象技术 实 验 类 型 设计型 实 验 日 期 2014. 4. 1 班 级 信计12-2 学 号 201253100220 姓 名 马新宇 成 绩 一、实验概述:【实验目的】1.了解Java语言的特点;熟悉Java编译和类加载的命令。2.掌握Java简单程序的编写。3.掌握Java Applet程序的调试与实现。4.掌握Java异常的概念及分类 。5.掌握抛出异常语句的使用(throw)及捕捉处理异常语句的使用(trycatch)。6.掌握上抛异常语句的使用(throws)。7.掌握自定义异常类
2、的创建方法。【实验原理】1.含有Applet的网页的HTML文件代码中部带有<applet> 和</applet>这样一对标记,支持Java的网络浏览器遇到这对标记时,就将下载相应的小应用程序代码并在本地计算机上执行该Applet。Java Applet 是用Java 语言编写的一些小应用程序,这些程序是直接嵌入到页面中,由支持Java的浏览器(IE 或 Netscape)解释执行能够产生特殊效果的程序。当Applet用户访问这样的网页时,Applet被下载到用户的计算机上执行,但前提是用户使用的是支持Java的网络浏览器。由于Applet是在用户的计算机上执行的,所以
3、它的执行速度受网络带宽或者Modem存取速度的限制,用户可以更好地欣赏网页上Applet产生的多媒体效果。2.Java中,类加载器把一个类装入Java虚拟机需要经过三个步骤来完成:装载:查找和导入.class文件链接:检查装入.class文件的正确性,然后,Java虚拟机为变量分配内存,设置默认值初始化:把符号引用变成直接引用。3.每当产生异常后,如果没有程序进行相应的处理,则程序会中断的现象。那么,此时实际上一旦产生一个异常之后,JVM会抛出一个异常类的实例化对象,如果此时使用了try语句进行捕获的话,则可以进行异常处理,如果没有的话,则交给JVM进行处理,当try语句捕获到了异常之后,会与
4、catch中的异常类型进行匹配,如果匹配成功,则使用此catch语句进行处理。【实验环境】Microsoft windows XP professionalMicrosoft office 2007Microsoft visual j+6.0JDK二、实验内容:【实验方案】1.建立class student类,用于输入学生相关信息,类中包括姓名、学号、年龄,还定义三个方法:姓名输入的方法void setName(String y)、学号输入方法void setId(int x)及输出方法public String toString()2.定义主类public class AA extends
5、Applet implements ActionListener,调用了public void init()对输入输出界面进行处理,public void actionPerformed(ActionEvent e)方法用于显示相关界面3.用JDK 6.0环境建立连续空间,编译程序。自定义一个异常类,处理用户程序中特定的逻辑运行错误。用try块定义可能出现的异常,用catch语句捕捉和处理try块中的异常语句。try 可能抛出异常语句;catch异常处理语句组;【实验过程】(实验步骤、记录、数据、分析)1.在桌面建立自己的工作目录;2.启用j+6.0开发软件,创建j+工程并命名,当进入编辑窗口
6、时,先进行保存操作,存于桌面自己创建的工作目录,该文件名必须与主类名相同,即WE.java,然后才编写Java Applet程序;3.测试Java Applet程序,源代码程序编译如果出错,按出错信息查找源文件中的错误并进行修改。修改后又重新运行该命令进行重新编译,直到编译成功。编译好以后的程序:import java.applet.* ;import java.awt.* ;import java.awt.event.* ;public class WE extends Applet implements ActionListener Label pr1,pr2,pr3; TextField
7、 t1,t2,t3; Button b; Student s; String msg; public void init() pr1=new Label("姓名:"); pr2=new Label("学号:"); pr3=new Label("年龄:"); t1=new TextField(8); t2=new TextField(8); t2=new TextField(8); b=new Button("确定"); b.addActionListener (this); add(pr1);add(t1); ad
8、d(pr2);add(t2); add(pr3);add(t3); add(b); s=new Student(); msg="" public void actionPerformed(ActionEvent e) s.setId(Integer.parseInt(t2.getText();msg=s.toString();repaint(); public void paint(Graphics g) g.drawString(msg,100,100); class Student String name;long id;int age;void setId(int x
9、) id=x; void setAge(int z) Age=z; public String toString() return" 姓名:"+name+ " 学号:"+id+ " 年龄: "+age; import java.applet.*;import java.awt.*;import java.awt.event.*;public class WE extends Applet implements ActionListenerLabel pr1,pr2;TextField t1,t2;Button b;Student s;
10、String msg;public void init()pr1=new Label("姓名:");pr2=new Label("学号:");t1=new TextField(7);t2=new TextField(7);b=new Button("OK");b.addActionListener(this);add(pr1);add(t1);add(pr2);add(t2);add(b);s=new Student();msg=""public void actionPerformed(ActionEvent e
11、) s.setId(Integer.parseInt(t2.getText();msg=s.toString();repaint(); public void paint(Graphics g) g.drawString(msg,100,100); class Student String name;long id;int age;void setId(int x) id=x;public String toString()return"姓名:"+name+" 学号:"+id;class NegativeException extends Excepti
12、on4.然而编写好的程序并不完全,比如说学号输入为零或负数时,会照原样输出;学号输入字符时,程序却没反应 。这并不适合我们的使用,为此,我们使用java提供的异常类,使程序更完善。Java提供了异常处理机制,当程序中发生异常时,程序产生一个异常事件,相应地生成异常对象。系统从生成对象的代码开始,沿方法的调用栈逐层回溯,寻找相应的处理代码,并把异常对象交给该方法处理。运行程序发现在学号输入框中输入字符时,程序无反应。分析源代码s.setId(Integer.parseInt(t1.getText();可知执行时会出现NumberFormatException异常。修改程序为public void
13、 actionPerformed(ActionEvent e)Try s.setId(Integer.parseInt(t2.getText();msg=s.toString(); catch(NumberFormatException ee)msg="学号必须是数字!"try块启动Java的异常处理机制,catch接收try块中可能产生的异常。对于输入负数,输出也是这个负数的情况,需要自己定义异常类class NegativeException extends Exception学号输入出也相应改变为void setId(int x) throws NegativeExc
14、eptionif(x>0)id=x;else throw new NegativeException();程序出再添加个catch语句,如下所示: public void actionPerformed(ActionEvent e) trys.setId(Integer.parseInt(t2.getText();msg=s.toString(); catch(NumberFormatException ee)msg="学号必须是数字!" catch(NegativeException ee)msg="学号必须是正整数!"这样修改后,输入为负数时,
15、就会输出一句话:学号必须是正整数!【实验结论】(结果)1.登陆界面如下图:2.当学号输入字符(如kjh)时,程序输出一句:学号必须是数字! 3.学号输入为负数(如-1000)时,输出就会使一句话:学号必须是正整数!4.正确输入界面如下:【实验小结】(收获体会) 这次实验还让我熟悉了JAVA的运用,让我对这门课程和这个软件有了更好的认识,也让我明白了程序应该尽可能的适应用户,应该以人为本,毕竟人才是程序的主导,程序应该根据人来改变。 三、指导教师评语及成绩:评 语评语等级优良中及格不及格1.实验报告按时完成,字迹清楚,文字叙述流畅,逻辑性强2.实验方案设计合理3.实验过程(实验步骤详细,记录完整
16、,数据合理,分析透彻)4实验结论正确. 成 绩: 指导教师签名: 批阅日期:附录1:源 程 序import java.applet.*;import java.awt.*;import java.awt.event.*;public class WE extends Applet implements ActionListenerLabel pr1,pr2;TextField t1,t2;Button b;Student s;String msg;public void init()pr1=new Label("姓名:");pr2=new Label("学号:&q
17、uot;);t1=new TextField(7);t2=new TextField(7);b=new Button("OK");b.addActionListener(this);add(pr1);add(t1);add(pr2);add(t2);add(b);s=new Student();msg=""public void actionPerformed(ActionEvent e)trys.setId(Integer.parseInt(t2.getText();msg=s.toString();catch(NumberFormatException ee)msg="学号必须是数字!"catch(NegativeException ee)msg="学号必须是正整数!"=t1.getText();repaint();public void paint(Graphics g
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023年牛津深圳中考英语语法专项练习定语从句和宾语从句
- 吉首大学《教学技能训练1》2021-2022学年第一学期期末试卷
- 吉首大学《抽样技术与应用》2021-2022学年第一学期期末试卷
- 《机床夹具设计》试卷23
- 吉林艺术学院《艺用人体解剖学》2021-2022学年第一学期期末试卷
- 吉林艺术学院《三维软件MAYA》2021-2022学年第一学期期末试卷
- 集体经济房屋分配协议书范本
- 协议书范文伪装通知书的效力
- 吉林师范大学《原动画技法》2021-2022学年第一学期期末试卷
- 城市拍档协议书范文范本
- 2023年中国铁塔招聘笔试真题
- 常规弱电系统施工单价表纯劳务
- 中小学学校人防、物防、技防落实方案
- 2023湖南文艺出版社五年级音乐下册全册教案
- 2024-2025学年苏教版小学四年级上学期期中英语试题及解答参考
- 国开2024秋《形势与政策》专题测验1-5参考答案
- DLT 5707-2014 电力工程电缆防火封堵施工工艺导则
- 广东省佛山市南海区2024年七年级上学期期中数学试题【附参考答案】
- 小红书2024年家装行业月报(9月)
- 【PPP项目风险评估与控制探究的国内外文献综述3900字】
- 安徽省芜湖市2024年部编版初中九年级期中考试语文试卷
评论
0/150
提交评论