Java程序设计实验指导书.doc_第1页
Java程序设计实验指导书.doc_第2页
Java程序设计实验指导书.doc_第3页
Java程序设计实验指导书.doc_第4页
Java程序设计实验指导书.doc_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

此文档收集于网络,如有侵权,请联系网站删除Java程序设计实验指导书武汉科技大学信息科学与工程学院 Java程序设计实验教学大纲实验课程名称:Java程序设计 英文名称:The Java Programming Language实验课程性质:非独立设课 应开实验学期:6课程编码:0402004 实验学时数:10适用专业:电子信息工程 一、实验教学目的和要求JAVA程序设计是一门实践性很强的专业课程。通过上机实验,不仅可以帮助学生较好地掌握Java语言和面向对象程序设计的基本概念、基本方法和技巧,同时也可培养学生独立设计程序的能力,理解面向对象的编程思想。实验教学目的:1 使学生通过实验,验证书本和课堂教学内容:逐步理解、体会、消化、巩固和补充课堂所学主要内容;2 培养学生设计与动手能力:通过设计性的实验任务,通过实践环节理解 Java语言的基本结构和程序设计方法。通过亲手编程掌握 Java 语言编程的方法,从而提高学生的分析问题、解决问题的能力和动手能力。通过实验,要求学生应达到以下实验能力与标准:1 熟练掌握Java程序的编辑、编译、运行步骤及程序调试的方法,熟练运用Java语言进行面向对象程序设计2 深入理解面向对象的封装、继承和多态等特性3 利用Java语言进行异常处理4 能利用Java语言进行磁盘数据文件的建立及读写操作编程。5 利用Java语言实现多线程编程。二、 主要仪器设备(所开实验的主要仪器设备)每个学生上机使用一台PC机进行程序开发,PC机的硬件、软件环境如下:1)硬件:CPU P4 3.0GHZ 256M内存,80G 硬盘空间。2)软件:操作系统:Windows XP开发工具:MyEclipse 8.5、Jsdk1.6.1_02软件开发包三、实验项目名称和学时分配 序号实验项目名称学时分配实验属性实验类型实验者类别必开/选开1初步的面向对象的程序设计2专业类设计性本科生必开2面向对象程序设计的继承、多态等特性的练习2专业类设计性本科生必开3异常类的定义及处理2专业类设计性本科生必开4文件的读/写操作2专业类设计性本科生必开5多线程编程2专业类设计性本科生必开四、实验课考核方式1.实验报告:每位同学必须独立书写实验报告,注意:不得抄袭他人的报告(或给他人抄袭),一旦发现,成绩为零分。实验报告的内容应包括以下几个部分:1) 按照实验内容和实验步骤要求完成实验任务后,若程序已通过实验指导教师验收,则只在报告中重点给出调试分析过程描述:包括测试数据、测试输出结果,以及对程序调试过程中存在问题的思考(列出主要问题的出错现象、出错原因、解决方法及效果等);若程序未完全通过验收,则需再此基础上提交包含详细注释的源程序清单。2) 根据思考题要求,重点描述需求分析、概要设计和详细设计过程,并提交包含详 细注释的源程序清单,最后详细描述程序调试分析过程。2.考核方式2.1 实验课成绩根据学生的实验预习、实验纪律、实验动手能力、实验结果和实验报告等几个部分进行综合评定,并给出优、良、中、及格和不及格共五档成绩。 2.2 实验课成绩占课程总成绩的30%。五、实验指导书及主要参考书1 蔡翠平 主编 唐大仕 编著,JAVA程序设计(修订本) ,北方交通大学出版社 清华大学出版社,2007年. 2 侯捷译,JAVA编程思想(第二版),机械工业出版社,2002.3 丁振凡,Java语言实用教程,北京邮电大学出版社,2005.4 丁振凡,Java语言实用教程实验指导,北京邮电大学出版社,北京,2006目 录实验一 熟悉Java程序的编辑、编译和运行环境1实验二 初步的面向对象的程序设计练习7实验三 面向对象程序设计的继承、多态等特性的练习12实验四 异常类的定义及处理17实验五 流、文件及基于文本的应用23主要参考文献27此文档仅供学习与交流实验一 初步的面向对象的程序设计练习一、实验目的1) 掌握类和构造方法的定义。2) 掌握创建类实例的方法。3) 初步掌握面向对象的编程思想二、实验内容1) 编写一个Java Application,利用JDK软件包中的工具在命令行方式下编译并运行这个程序,使之能够输出字符串信息“Hello World! ”。(注:其后的所有实验如无特别说明,均是在MyEclipse8.5环境下编译执行)2) 编写程序实现如下功能:已知学生类有域变量(姓名、考号、综合成绩、体育成绩)和方法(获取综合成绩、获取体育成绩、显示基本信息),学校类有静态变量(录取分数线)和方法(设置录取分数、获取录取分数线),录取类有方法(获取学生是否符合录取条件,其中录取条件为综合成绩在录取分数线之上,或体育成绩在96分以上并且综合成绩大于300分)。现要求编写程序输出一组学生对象中被某学校录取的学生基本信息。三、实验仪器、设备及材料每个学生上机使用一台PC机进行程序开发,PC机的硬件、软件环境如下:1)硬件:CPU P4 3.0GHZ 256M内存,80G 硬盘空间。2)软件:操作系统:Windows XP开发工具:MyEclipse 8.5、Jsdk1.6.1_02软件开发包四、实验原理1) 类、域、方法类体中包括域和方法,都是类的成员。一个类可以定义多个域和方法。(1)域也就是类的静态属性,也称为变量、成员变量等,格式为: 类型名 域名; 在定义域变量前,还可以加修饰符。(2)方法是类的动态属性。Java的方法与其它语言中的函数类似。由方法头和方法体组成:修饰符1 返回类型 方法名(形参列表)throws 异常列表方法体语句;其中,形参列表格式为:形参类型 形参名1,形参类型 形参名22)类和对象(1)类(class):抽象的集合概念。类包括系统类库中已定义好的类和用户自定义的类(2)对象(实例instance):实际个体。创建某个类的具体对象(类似变量声明),具体定义格式为:类名 对象变量=new 类名(参数);(3)构造方法:构造方法的名字与类名相同。创建对象时自动调用,并对对象进行初始化操作。注意:构造方法前面没有返回类型定义,它没有返回值,也不是void。不能return;JAVA每个类都至少有一个构造方法系统默认无参数构造方法;一旦定义了构造方法,系统不再提供默认构造方法。(4)对象的使用:要访问或调用一个对象的域或者方法,使用 . 操作符。一般形式: 引用对象变量名.域/方法名;如 p.sayHello(); 由于只能用对象变量来访问这个对象的域或方法,不通过引用变量就没有办法访问,体现了面向对象的“封装性” 。3)静态域和静态方法(1)静态域用static修饰的域属于类的静态域(静态量,类变量),不用static修饰的为实例变量(实例域)。静态域的特点如下:l 它们是类的域,不属于任何一个类的具体对象实例。它保存在类的内存区域的公共存储单元。l 对于该类的任何一个实例对象,静态域是一个公共的存储单元。l 任何一个类的对象访问它,取到的都是相同的值;l 任何一个类的对象修改它,那么也是在对同一个内存单元进行操作。(2)静态方法用static修饰的方法属于类的静态方法,又称为类方法。不用static修饰的方法为实例方法。类方法的本质是该方法属于整个类,而不是属于某个实例。静态方法具有如下特点:l static方法是属于整个类的,它在内存中的代码段将随着类的定义而进行分配和装载。而非static的方法是属于某个对象的,在这个对象创建时,对象的方法在内存中有自己的代码段。l static方法不能操纵属于某个对象的成员变量,只能处理属于类的成员变量,即只能处理static域和方法。l 类方法中不能访问实例变量,也不能使用this或super。l 调用类方法可以使用类名,也可以用具体对象名。五、实验步骤1) 编写一个Java Application,利用JDK软件包中的工具编译并运行这个程序。步骤(1):编写、编译Java 源程序。打开MyEclipse,新建一个java文件,键入如下程序代码: public class Hello public static void main(String args) System.out.println(Hello,World!); 将文件命名为Hello.java,注意保存文件Hello.java到路径“e:自己学号java”下。步骤(2):编译Java 源程序Java 源程序编写后,要使用Java 编译器(javac.exe)将Java 源程序编译成字节码文件。Java 源程序都是扩展名为 .java 的文本文件。编译时首先读入Java 源程序,然后进行语法检查,如果出现问题就终止编译。语法检查通过后,生成可执行程序代码即字节码,字节码文件名和源文件名相同,扩展名为 .class。打开命令提示符窗口(MSDOS 窗口)进入Java 源程序所在路径e:自己学号java”。键入编译器文件名和要编译的源程序文件名,具体如下:Set path=%path%;c:program filesjdk1.6.0_02bin; javac -d class Hello.java按回车键开始编译(注意:文件名H 要大写,否则运行会出问题)。如果源程序没有错误,则屏幕上没有输出,键入 “dir”按回车键后可在当前目录中看到生成了class子目录,在class子目录下有一个同名字的.class 文件即“Hello. class”。否则,将显示出错信息。步骤(3):运行Java 程序 按如下命令回到e:自己学号java目录 :cd . 使用Java 解释器(java.exe)可将编译后的字节码文件Hello.class 解释为本地计算机代码。在命令提示符窗口或MSDOS 窗口键入解释器文件名和要解释的字节码文件名:java classpath e:自己学号javaclass Hello按回车键即开始解释并可看到运行结果。2) 编写程序实现如下功能:已知学生类有域变量(姓名、考号、综合成绩、体育成绩)和方法(获取综合成绩、获取体育成绩、显示基本信息),学校类有静态变量(录取分数线)和方法(设置录取分数、获取录取分数线),录取类有方法(获取学生是否符合录取条件,其中录取条件为综合成绩在录取分数线之上,或体育成绩在96分以上并且综合成绩大于300分)。现要求编写程序输出一组学生对象中被某学校录取的学生基本信息。(注意:这个程序可以直接在Eclipse集成编辑环境中完成)步骤(1):定义类Stduent,并添加如下域变量: String name; String id; float comScore; float score ;步骤(2):在类Student中添加如下方法,并编写代码实现具体方法的功能: Student(String name,String id, float comScore, float score) float getcomScore() float getscore() void print() 步骤(3)定义类School,并添加静态变量 static float scoreLine; 添加静态方法 static float getScoreLine() static void setScoreLine(float score)步骤(4)定义一个Application程序类Enroll并添加方法: public static void main(String args) static boolean isEnroll(Student s)步骤(5)保存文件名为Enroll.java, 然后编译、调试和运行程序。六、实验报告要求每位同学必须独立书写实验报告,注意:不得抄袭他人的报告(或给他人抄袭),一旦发现,成绩为零分。实验报告的内容应包括以下几个部分:1) 按照实验内容和实验步骤要求完成实验任务后,若程序已通过实验指导教师验收,则只在报告中重点给出调试分析过程描述:包括测试数据、测试输出结果,以及对程序调试过程中存在问题的思考(列出主要问题的出错现象、出错原因、解决方法及效果等);若程序未完全通过验收,则需再此基础上提交包含详细注释的源程序清单。2) 根据思考题要求,重点描述需求分析、概要设计和详细设计过程,并提交包含详细注释的源程序清单,最后详细描述程序调试分析过程。七、实验注意事项1) 每个同学必须按时参加实验,并且每次实验前提交程序代码初稿,否则不能进行实验。2) 实验中严禁随意拷贝其他同学的程序或给其他同学拷贝。3) 在实验过程中,爱惜实验器材,避免对实验器材造成不必要的损害。如发生损坏照价赔偿。4) 在实验用机上使用移动存储设备之前,必须用杀毒软件进行检测,否则不能使用。5) 每位同学完成实验任务后,必须经过实验指导老师验收后方可离开。实验二 面向对象程序设计的继承、多态等特性的练习一、实验目的1) 掌握类的继承机制。2) 熟悉类中成员变量和方法的访问控制。3) 熟悉方法或构造方法多态性。4) 熟悉接口的定义方法。二、实验内容1) 编写程序实现如下功能:已知Person类包含三个公共域变量(姓名、性别、年龄)和一个构造方法,Student类是Person类的派生类,包含两个新的公共域变量(学号、班号)、两个公共方法(修改年龄、显示基本信息)及一个构造方法。定义一组学生对象,并初始化他们的基本信息,然后依次输出。2) 输入课本例5-4的源程序,观察其运行结果,然后将Shape类分别定义为一个抽象类和接口,然后将源程序进行修改,让其实现相同功能。三、实验仪器、设备及材料每个学生上机使用一台PC机进行程序开发,PC机的硬件、软件环境如下:1)硬件:CPU P4 3.0GHZ 256M内存,80G 硬盘空间。2)软件:操作系统:Windows XP开发工具: MyEclipse 8.5、Jsdk1.6.1_02软件开发包四、实验原理1)类的继承面向对象语言允许从一个已有的类父类定义新的类子类,从而形成继承关系。父类是所有子类的公共域和公共方法的集合,每个子类是父类的特殊化。子类继承父类的状态和行为,同时也可以修改父类,并可以添加新的状态和行为。(1)域的继承和添加子类可以从父类那里继承所有的没有被private和static修饰的域。那么子类就无需再重复定义。还可以在子类中定义其独特的域变量:(2)方法的继承、覆盖和添加父类的非private方法也可以被子类自动继承。同时子类也可以重新定义与父类同名的方法,实现对其的覆盖/重置(override/overlay)。在覆盖父类方法时注意应保持完全相同的方法名、返回值和参数类型列表,即重写父类中的方法。另外子类还可以重载父类的方法或添加新的方法。2)访问修饰符Java提供4种访问权限: public、protected、private和默认。描 述private默 认protectedpublic同一类中同一包中对子类同一包中对非子类不同包中对子类不同包中对非子类3)抽象类和接口(1)抽象类和抽象方法一个方法如果没有定义方法体,则称该方法为抽象方法。包含一个或多个抽象方法的类,称为抽象类。 定义抽象类后,其它类可以对它进行扩充并且通过实现其中的抽象方法,使抽象类具体化。Java语言中,用abstract 关键字来修饰一个类时,这个类叫做抽象类,用abstract 关键字来修饰一个方法时,这个方法叫做抽象方法。抽象类的语法格式如下abstract Class /抽象类抽象方法的语法格式如下abstract returnType abstractMethod(paramlist) /抽象方法抽象类必须被继承,抽象方法必须被重写。抽象方法只需声明,无需实现,抽象类不能被实例化。若类中包含了抽象方法,则该类必须被定义为抽象类。(2)接口接口是抽象类的一种,只包含常量和方法的定义,而没有方法的实现,且其方法都是抽象方法。它的用处体现在下面几个方面:l 通过接口指明多个类需要实现的方法。l 通过接口实现不相关类的相同行为,而无需考虑这些类之间的关系。l 通过接口了解对象的交互界面,而无需了解对象所对应的类。 接口的定义包括接口声明和接口体,接口声明的格式如下:public interface interfaceNameextends listOfSuperInterface 其中,extends 子句与类声明的extends子句基本相同,不同的是一个接口可有多个父接口,用逗号隔开,而一个类只能有一个基类。4)多态的两种表现形式(1)同一类中的方法多态(方法重载):同一类中允许多个同名方法,通过参数的数量、类型的差异进行区分。(2)子类对父类方法的重新定义(方法覆盖):方法名、返回值和参数形态完全一样。五、实验步骤1) 编写程序实现如下功能:已知Person类包含三个公共域变量(姓名、性别、年龄)和一个构造方法,Student类是Person类的派生类,包含两个新的公共域变量(学号、班号)、两个公共方法(构造方法、修改年龄、显示基本信息)和一个构造方法。定义一组学生对象,并初始化他们的基本信息,然后依次输出。步骤(1):定义类Person,并添加以下公共域变量 public String name; public char sex; public int age; 添加构造方法Person(String name,char sex,int age)步骤(2):基于类Person派生类Student,并添加如下公共域变量和方法 public String classno; public String sno; public void updateAge(int age) void toString() Student(String name,char sex,int age,String sno,String name) super(name,sex,age); . 步骤(3):定义一个包含main方法的Application程序类TestStudentPerson,初 始化一个学生类对象数组,并利用循环语句显示所有学生基本信息。2) 输入课本例5-4的源程序,观察其运行结果,然后将Shape类分别定义为一个抽象类和接口,然后将源程序进行修改,让其实现相同功能。步骤(1):在编辑调试工具中输入课本例5-4TestVirtualInvoke.java程序,编译运行,观察程序的运行结果,并思考为什么产生这样的结果。步骤(2):将Shape类定义为abstact class Shape,然后重新定义Shape抽象类的派生类Circle、Triangle、Line,最后编译运行,观察程序的运行结果是否和上面的结果相同。步骤(3):将Shape定义为interface Shape,然后基于Shape接口实现类Circle、Triangle、Line,最后编译运行,观察程序的运行结果是否和上面的结果相同。六、实验报告要求每位同学必须独立书写实验报告,注意:不得抄袭他人的报告(或给他人抄袭),一旦发现,成绩为零分。实验报告的内容应包括以下几个部分:1) 按照实验内容和实验步骤要求完成实验任务后,若程序已通过实验指导教师验收,则只在报告中重点给出调试分析过程描述:包括测试数据、测试输出结果,以及对程序调试过程中存在问题的思考(列出主要问题的出错现象、出错原因、解决方法及效果等);若程序未完全通过验收,则需再此基础上提交包含详细注释的源程序清单。2) 根据思考题要求,重点描述需求分析、概要设计和详细设计过程,并提交包含详细注释的源程序清单,最后详细描述程序调试分析过程。七、实验注意事项1) 每个同学必须按时参加实验,并且每次实验前提交程序代码初稿,否则不能进行实验。2) 实验中严禁随意拷贝其他同学的程序或给其他同学拷贝。3) 在实验过程中,爱惜实验器材,避免对实验器材造成不必要的损害。如发生损坏照价赔偿。4) 在实验用机上使用移动存储设备之前,必须用杀毒软件进行检测,否则不能使用。5) 每位同学完成实验任务后,必须经过实验指导老师验收后方可离开。八、思考题编写一个完整的Java Application 程序,包含Circle类、Cylinde类、Test类、具体要求如下:Circle类 属性Radius:double型,表示圆的半径 方法double findArea():返回圆的面积(半径若为r,则面积为r2)double getRadius ():返回圆的半径Cylinder类继承Circle 类,并有以下属性和方法: 属性length: double 型,表示圆柱体的高 方法Cylinder(double r, double l ):构造函数,给圆柱体的半径和高赋初值double findVolume():返回圆柱体的体积toString():返回圆柱体的半径、高、体积等信息Test 类作为主类要完成测试功能 生成Cylinder 对象 输出对象的描述信息 import java.io.*;public class Test public static void main(String args) class Circle / Circle类定义,请填写完整 final float PI=3.14159f;double radius; double getRadius() return radius; Circle(double r) double findArea() class Cylinder extends Circle / Cylinder类定义 double length;Cylinder(double r, double l) double findVolume() public String toString() 实验三 异常类的定义及处理一、实验目的1) 了解异常处理方法。2) 熟悉并掌握常见异常的捕获方法。3) 熟悉JDK中已经定义的若干异常类的层次结构。4) 掌握自定义异常类的创建方法。二、实验内容1) 编写程序实现如下功能:生成并捕获到NegativeArraySizeException和IndexOutOfBoundsException类型的异常,并显示捕获到的异常信息。然后在此基础上生成并捕获到NullPointerException类型的异常,并显示捕获到的异常信息。2) 编写程序实现如下功能:计算两个数之和,参与求和运算的每个数的值都必须在10-20之间,当任意一个数超出范围时,抛出自己的异常。三、实验仪器、设备及材料每个学生上机使用一台PC机进行程序开发,PC机的硬件、软件环境如下:1)硬件:CPU P4 3.0GHZ 256M内存,80G 硬盘空间。2)软件:操作系统:Windows XP开发工具:MyEclipse 8.5、Jsdk1.6.1_02软件开发包四、实验原理1)异常的分类(1)异常是一个对象,它继承自Throwable类。(2)Error:由Java虚拟机生成并抛出,Java程序不做处理。(3)Exception:其它由于编程错误及偶然的外在因素导致的一般性问题。一般我们所说的异常都是指Exception及其子类。2)异常处理结构try catch(异常类名 异常形参名) catch(异常类名 异常形参名) finally 说明:(1)finally总是执行,它是异常处理的统一出口,常用来实现资源释放、文件关闭等功能。(2)发生异常时,try块内的后续语句不再执行。(3)catch按照次序进行匹配检查处理,找到一个匹配者,不再找其他;catch的排列要按照先个别化再一般化的次序,不再将父类异常排在前,子类异常排在后。3) 常见的系统异常(1) ArithmeticException(2) ArrayIndexOutOfBandsException(3) ArrayStoreException(4) IOException(5) FileNotFoundException(6) NullPointerException(7) MalformedURLException(8) NumberFormatException(9) OutOfMemoryException4) 自定义异常的步骤(1)声明一个新的异常类,使之以Exception类或其他某个已经存在的系统异常类或用户定义异常类为父类。(2)为新的异常类定义属性和方法,或重载父类的属性和方法,使这些属性和方法能够体现该类对应的错误信息。五、实验步骤1) 编写程序实现如下功能:生成并捕获到NegativeArraySizeException和IndexOutOfBoundsException类型的异常,并显示捕获到的异常信息。然后在此基础上生成并捕获到NullPointerException类型的异常,并显示捕获到的异常信息。步骤(1):编写一个包含main方法的Application类TestException,然后定义一个方法void arraySize()生成并捕获NegativeArraySizeException异常。步骤(2):添加一个方法void outofBound()生成并捕获IndexOutOfBoundsException异常。步骤(3):添加一个方法void nullPointer()生成并捕获IndexOutOfBoundsException异常。步骤(4):在main方法中分别调用以上三个方法。步骤(5):将文件保存为TestException.java,然后编译、调试应用程序。步骤(6):将outofBound()方法中捕获异常的语句注释掉,重新编译程序,看看会不会有什么语法错误?如果没错误,执行程序看结果有什么不同?步骤(7):将array方法重新定义为如下形式:void arraySize() throws NegativeArraySizeException然后修改arraySize方法中捕获NegativeArraySizeException异常的语句执行部分。2) 编写程序实现如下功能:计算两个数之和,参与求和运算的每个数的值都必须在10-20之间,当任意一个数超出范围时,抛出自己的异常。步骤(1):基于系统异常类Exception,定义自己的异常类NumberRangeException。步骤(2):定义包含main方法的Application类SelfException。步骤(3):在SelfException类中添加公共方法: Public static int selfExceptionTest(int int1,int int2) throws NumberRangeException使之能在求int1,int2两个数和之前检查两个数的数值范围,若符合条件则求和,否则抛出异常NumberRangeException。步骤(4):在main方法中调用selfExceptionTest方法。步骤(5):保存文件为SelfException.java,然后编译并调试程序。步骤(6):修改main方法中调用selfExceptionTest方法的实参,看看程序的运行结果有什么不同。六、实验报告要求每位同学必须独立书写实验报告,注意:不得抄袭他人的报告(或给他人抄袭),一旦发现,成绩为零分。实验报告的内容应包括以下几个部分:1) 按照实验内容和实验步骤要求完成实验任务后,若程序已通过实验指导教师验收,则只在报告中重点给出调试分析过程描述:包括测试数据、测试输出结果,以及对程序调试过程中存在问题的思考(列出主要问题的出错现象、出错原因、解决方法及效果等);若程序未完全通过验收,则需再此基础上提交包含详细注释的源程序清单。2) 根据思考题要求,重点描述需求分析、概要设计和详细设计过程,并提交包含详细注释的源程序清单,最后详细描述程序调试分析过程。七、实验注意事项1) 每个同学必须按时参加实验,并且每次实验前提交程序代码初稿,否则不能进行实验。2) 实验中严禁随意拷贝其他同学的程序或给其他同学拷贝。3) 在实验过程中,爱惜实验器材,避免对实验器材造成不必要的损害。如发生损坏照价赔偿。4) 在实验用机上使用移动存储设备之前,必须用杀毒软件进行检测,否则不能使用。5) 每位同学完成实验任务后,必须经过实验指导老师验收后方可离开。八、思考题1)翻译下列常用异常类的描述信息OutOfMemoryError A class instance creation expression, array creation expression , or string concatenation operatior expression throws an OutOfMemoryError if there is insufficient memory available. NegativeArraySizeException An array creation expression throws a NegativeArraySizeException if the value of any dimension expression is less than zero.NullPointerException A field access throws a NullPointerException if the value of the object referenceexpression is null. A method invocation expression that invokes an instance method throws a NullPointerException if the target reference is null. An array access throws a NullPointerException if the value of the array referenceexpression is null. ArrayIndexOutOfBoundsException An array access throws an ArrayIndexOutOfBoundsException if the value of the array index expression is negative or greater than or equal to the length of the array. ClassCastException Thrown to indicate that the code has attempted to cast an object to a subclass of which it is not an instance. For example, the following code generates a ClassCastException: Object x = new Integer(0); System.out.println(String)x);ArithmeticException Thrown when an exceptional arithmetic condition has occurred. For example, an integer divide by zero throws an instance of this class. ArrayStoreExceptionAn assignment to an array component of reference type throws an ArrayStoreException when the value to be assigned is not compatible with the component type of the array.NoSuchFieldExceptionSignals that the class doesnt have a field of a specified name.NoSuchMethodExceptionThrown when a particular method cannot be foundNumberFormatExceptionThrown to indicate that the application has attempted to convert a string to one of the numeric types, but that the string does not have the appropriate format. FileNotFoundExceptionSignals that an attempt to open the file denoted by a specified pathname has failed.IOExceptionSignals that an I/O exception of some sort has occurred. This class is the general class of exceptions produced by failed or interrupted I/O operations2)编写一个程序,用于根据用户输入的命令行参数数量来计算长方形、正方形、三角形的面积。如果输入的参数个数为1、2、3则它们应分别对应正方形、长方形、三角形,如果参数值为0,则异常处理方法显示错误消息。提示:自己定义一个异常类,表示参数个数0这一异常。然后定义一个抽象的父类,并提供一个抽象的方法area(),再派生出三个子类,重写area方法,最后在main方法中编写测试逻辑。实验四 流、文件及基于文本的应用一、实验目的1) 理解数据流的概念。2) 理解Java流的层次结构。3) 理解并掌握文件的读写操作方法。二、实验内容1) 编写一个java Application程序,接受用户输入的10个整数,比较并输出其中的最大值和最小值。三、实验仪器、设备及材料每个学生上机使用一台PC机进行程序开发,PC机的硬件、软件环境如下:1)硬件:CPU P4 3.0GHZ 256M内存,80G 硬盘空间。2)软件:操作系统:Windows XP开发工具:MyEclipse 8.5、Jsdk1.6.1_02软件开发包四、实验原理1)字节流和字符流Java的输入/输出流中,根据它们的数据类型,主要可分为两类:字符流(Character Stream)和字节流(Btye Stream)。(1)字符流 字符流的输入/输出数据是字符码,即Unicode字符。字符流有两个基本类:Reader类和Writer类。Reader类用于处理字符输入流,Writer类用于处理字符输出流。(2)字节流 字节流是按字节读/写二进制数据。字节流有两个基本的类:InputStream类和OutputStream类。InputStream类用于处理字节输入流,OutputStream类用于处理字节输出流。 2)节点流和处理流按照流是否直接与特定的地方(如磁盘、内存等)相连,分为节点流与处理流。(1)节点流:可以从或者向一个特定的地方(节点)读写数据。如文件流FileReader。(2)处理流:是对一个已经存在的流的连接和封装,通过所封装的流的功能调用实现数据读、写功能。处理流也称过滤流,如缓冲处理流BufferedReader。3)文件字节流(1)文件字节输入流 FileInputStream(文件字节输入流)主要用于文件的输入,通过该类创建的对象可以从文件中读数据。FileInputStream类提供的常用方法有: FileInputStream(String name) throws FileNotFoundException 创建一个关联到实际文件的文件字节输入流,name指定了要关联到的文件的路径名。如果该文件不存在或是不能被打开,将抛出一个FileNotFoundException异常。 FileInputStream(File file) throws FileNotFoundException 创建一个关联到实际文件的文件字节输入流,file是一个文件对象。如果该文件不存在或是不能被打开,将抛出一个FileNotFoundException异常 (2)文件字节输出流 FileOutputStream(文件字节输出流)主要用于文件的输出,通过该类创建的对象可以往文件中写数据。FileOutputStream类提供的常用方法有: FileOutputStream (String name) throws FileNotFoundException FileOutputStream (File file) throws FileNotFoundException FileOutputStream (String name, boolean append) throws FileNotFoundException FileOutputStream (File file, boolean append) throws FileNotFoundException4)字符文件流FileReader用于文件的输入,该类以字符流的方式从文件中读数据。FileReader类提供的常用方法有: FileReader(String name) throws FileNotFoundException FileReader (File file) throws FileNotFoundException FileWriter用于文件的输出,该类以字符流的方式往文件中写数据。FileWriter类提供的常用方法有: FileWriter (String name) throws FileNotFoundException FileWriter (String name, boolean append) throws FileNotFoundException FileWriter (File file, boolean append) throws FileNotFoundException 5)Java Application命令行参数Java Application是用命令行来启动执行的,命令行参数就成为向java application传入数据的常用方式。在启动java应用程序时可以一次性的向应用程序中传递0到多个参数。格式为: java 类名 参数1 参数2 参数间用空格隔开,如果参数本身有空格,则要用一对双引号引起来。命令行参数被系统以String数组的方式传递给main方法,由参数args接收。五、实验步骤1) 编写一个java Application程序,接受用户输入的10个整数,比较并输出其中的最大值和最小值。步骤(1):定义一个包含main方法的Application类MaxMi

温馨提示

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

评论

0/150

提交评论