JAVA实验手册.docx
- 文档编号:18342169
- 上传时间:2023-08-15
- 格式:DOCX
- 页数:23
- 大小:36.37KB
JAVA实验手册.docx
《JAVA实验手册.docx》由会员分享,可在线阅读,更多相关《JAVA实验手册.docx(23页珍藏版)》请在冰点文库上搜索。
JAVA实验手册
JAVA
实
验
手
册
2011年2月
实验一Java编程环境下载、安装、配置与运行
【开发语言及实现平台或实验环境】
Windows2000或XP,与UltraEdit
【实验目的】
1.掌握下载javasdk软件包
2.掌握设置Java程序运行环境的方法
3.掌握编写与运行Java程序的方法
4.了解Java语言的概貌
【实验要求】
1.JDK的下载与安装
2.设置环境变量
3.使用UltraEdit编辑源程序
4.编译Java源程序
5.运行Java程序
6.掌握向main()方法中传递参数
【实验内容】
一JDK下载与安装
1.机器要求
Java对机器运行要求不高。
下面给出的是基于Windows平台的机器要求。
硬件要求:
CPUPⅣ,128M内存,1G硬盘空间即可
软件要求:
Windows2000/XP,
2.下载JDK
“PopularDownloads”栏中可看到最新版的JDK软件包(),并下载。
3.安装SDK
运行下载的“jdk-6u15-windows-i586”软件包,在安装过程中可以设置安装路径及选择组件,默认的组件选择是全部安装,安装成功后,其中bin文件夹中包含编译器()、解释器()、Applet查看器()等可执行文件,lib文件夹中包含了所有的类库以便开发Java程序使用,demo文件夹中包含开源代码程序实例。
中主要文件夹和文件
安装成功后,C:
\ProgramFiles\Java\jdk1.6.0_15中文件和子目录结构如图所示。
其中bin文件夹中包含编译器()、解释器()、Applet查看器()等可执行文件,lib文件夹中包含了所有的类库以便开发Java程序使用,sample文件夹包含开源代码程序实例,src压缩文件中包含类库开源代码。
二.设置环境变量
JDK中的工具都是命令行工具,需要从命令行即MS-DOS提示符下运行它们。
很多人可能会不习惯,但这是Sun特意采取的策略,为的是把精力更多投入到Java语言本身而不是花在开发工具上。
以WindowsXP为例说明设置过程。
右击桌面“我的电脑”图标,选择“属性”菜单
在“高级”选项卡中单击“环境变量”按钮,将出现“环境变量”设置界面
在“系统变量”中,找到变量名“PATH”,选中后,点击“编辑”按钮,增加路径
C:
\j2SDK1.6.0_15\bin”,如图所示;
在“系统变量”框中,单击“新建”按钮,在出现的“新建系统变量”的对话框中,在“变量名”栏中输入“classpath”,设置路径为“.;C:
\J2SDK1.6.0_15\lib”,如图所示。
设置完成后,单击“开始”->“所有程序”->“附件”->“命令提示符”打开DOS窗口,在命令行提示符输入“java”或“javac”回车后,如果出现其用法参数提示信息,则安装正确。
三、编辑源程序
要编写Java程序,需要有文本编辑器。
可使用操作系统提供的记事本作为编辑器,也可选择UltraEdit编辑软件,它可以使用不同颜色显示java的关键字和类名,简单好用。
(1)下载并安装UltraEdit编辑软件或其他编辑软件
编写在屏幕上显示文字“HelloWorld!
”的文件(和)。
打开UltraEdit编辑软件,新建源文件,并编写源代码,如图所示。
四.编译java源程序
Java源程序编写后,要使用Java编译器()进行编译,将Java源程序编译成可执行的程序代码。
Java源程序都是扩展名为.java的文件。
编译时,首先读入Java源程序,然后进行语法检查,如果出现问题就终止编译。
语法检查通过后,生成可执行程序代码即字节码,字节码文件名和源文件名相同,扩展名为.class。
(1)打开命令提示符窗口,进入java源程序所在路径。
(2)键入编译器和要编译的源程序文件名:
。
按回车键开始编译。
如源程序无错误,则屏幕上无输出
,如图所示。
(2)键入“dir”命令并回车可在目录中看到生成的同名类文件。
五.运行Java程序
使用java编译器()可将编译后的字节码文件解释为本地计算机代码。
在命令提示符窗口键入解释器和要解释的字节码文件名javahelloworld。
按回车键即开始执行程序并输出结果。
注意:
字节码文件区分大小写。
六、编写程序要求给main()方法传递参数,并在屏幕上输出。
七、在上面两个源程序的基础上自定义包,编译运行程序。
八(选做)
编写小应用程序,嵌入到HTML文件中,利用小程序查看器运行查看。
【思考题】
环境变量path和classpath的作用。
实验二Java基本语法练习
【开发语言及实现平台或实验环境】
Windows2000或XP,与UltraEdit
【实验目的】
1.了解Java的数据类型
2.掌握各种变量的声明方式
3.理解运算符的优先级
4.掌握java基本数据类型。
运算符与表达式、数组的使用方法
5.理解Java程序语法结构,掌握顺序结构、选择结构和循环结构语法的程序设计方法
【实验要求】
1.编写一个声明java不同数据类型变量的程序
2.编写一个使用运算符、表达式、变量的程序
3.编写一个使用java数据的程序
4.编写表达式语句、复合语句的程序
5.编写使用不同选择结构的程序
6.编写使用不同循环结构的程序
【实验内容】
一.声明不同数据类型的变量
1.编写声明不同数据类型变量的程序文件,源代码如下。
publicclassDemo2_1{
publicstaticvoidmain(Stringargs[]){
byteb=0x55;
shorts=0x55ff;
inti=1000000;
longl=0xffffL;
charc='a';
floatf=0.23F;
doubled=;
booleanB=true;
StringS="这是字符串类数据类型";
字节型变量b="+b);
短整型变量s="+s);
整型变量i="+i);
长整型变量l="+l);
字符型变量c="+c);
浮点型变量f="+f);
双精度变量d="+d);
布尔型变量B="+B);
字符串类对象S="+S);
}
}
2.编译并运行该程序。
3.定义一个浮点数类型的数据,查看其在计算机内部的二进制数据流(以十进制或二进制整型数据显示。
提示:
利用floatToIntBit方法)
4.在屏幕上输出正、负无穷大的浮点数。
5.创建一个CPerson类,包括以下属性:
姓名、身份证号、性别和年龄。
要求设计该类并添加一个对其成员变量初始化的构造方法。
6.课后思考题P104-105:
1,7,8
二.使用关系运算符和逻辑运算符
1.建立使用关系运算符和逻辑运算符的程序文件,源代码如下。
classDemo2_2{
publicstaticvoidmain(Stringargs[]){
inta=25,b=20,e=3,f=0;
booleand=a
因为关系表达式a
"+d);
if(e!
=0&&a/e>5)
因为e非0且a/e为8大于5,所以输出a/e="+a/e);
if(f!
=0&&a/f>5)
="+a/f);
else
因为f值为0,所以输出f="+f);
}
}
2.编译并运行该程序,结果如图所示。
三.使用数组
1.建立使用数组的程序,本程序建立了一个长度为5的1维数组,源代码如下。
publicclassDemo2_3{
publicstaticvoidmain(Stringargs[]){
inta[]=newint[5];
a[0]=10;
a[1]=10+a[0];
a[2]=30;
a[3]=40;
a[4]=a[1]+a[2];
="+a[0]);
="+a[1]);
="+a[2]);
="+a[3]);
="+a[4]);
}
}
2.编译并运行程序。
四.使用表达式语句与复合语句
1.建立包含表达式语句程序,源代码如下。
classDemo2_4{
publicstaticvoidmain(String[]args){
intk,i=3,j=4;
k=20*8/4+i+j*i;
表达式(20*8/4+i+j*i)="+k);
}
}
2.建立包含复合语句程序,源代码如下。
classDemo2_5{
publicstaticvoidmain(Stringargs[]){
intk,i=3,j=4;
k=i+j;
在复合块外的输出k="+k);
{
floatf;
f=j+4.5F;
i++;
在复合块内的输出f="+f);
在复合块内的输出k="+k);
}
在复合块外的输出i="+i);
}
}
3.编译并运行上述两个源程序,结果如图、所示
五.使用选择语句
1.使用if...else语句
(1)程序功能:
使用if...else语句构造多分支,判断某一年是否为闰年。
闰年的条件是符合下面二者之一:
能被4整除,但不能被100整除;能被4整除,又能被100整除。
(2)编写源程序文件,代码如下。
publicclassDemo2_6{
publicstaticvoidmain(Stringargs[]){
booleanleap;
intyear=2005;
if((year%4==0&&year%100!
=0)||(year%400==0))1/2/3;
classDemo2_9{
publicstaticvoidmain(Stringargs[])throwsIOException{
charch;
按1/2/3数字键可得大奖!
");
按空格键后回车可退出循环操作.");
while'){
.+100="+sum);
}
}
(3)编译并运行程序,结果如图所示。
【思考题】
1.程序的复合结构以及变量的使用范围
2.选择语句,哪些具有嵌套关系?
和do…while的区别。
实验三Java语言面向对象基础
实验目的
通过编程和上机实验理解Java语言是如何体现面向对象编程基本思想,了解类的封装方法,以及如何创建类和对象,了解成员变量和成员方法的特性,掌握面向对象程序设计的方法,了解类的继承性和多态性的作用,了解接口的作用。
实验要求
1、编写一个体现面向对象思想的程序;
2、编写一个创建对象和使用对象的方法的程序;
3、编写一个显示当前日期和时间的程序;
4、编写不同成员变量修饰方法的程序;
5、编写不同成员方法修饰方法的程序;
6、编写体现类的继承性(成员变量、成员方法、成员变量隐藏)的程序;
7、编写体现类的多态性(成员方法重载、构造方法重载)的程序;
实验内容
1、设计类来描述真实客观世界中的事物,使用类的成员变量来表示事物的属性和状态,使用类的成员方法来提供对成员变量的访问或修改
(1)程序功能:
设计一个用来描述汽车的类,使用类的非静态成员变量来表示汽车的车主姓名、当前的速率和当前方向盘的转向角度,使用类的非静态成员方法来表示改变汽车的速率和停车两个操作。
(2)程序源代码如下。
publicclassEXP3_1{
privateStringownerName;200f25f
解Java系统包的结构。
2.掌握创建自定义包的方法。
3.掌握使用系统接口的技术和创建自定义接口的方法。
4.理解系统异常处理的机制和创建自定义异常的方法。
【实验步骤】
一.了解并使用Java的系统包
1.API包、接口、异常处理的作用
包是类和接口的集合。
利用包可以把常用的类或功能相似的类放在一个包中。
Java语言提供系统包,其中包含了大量的类,可以在编写Java程序时直接引用它们。
为便于管理和使用它们,将这些类分为了不同的包。
包又称类库或API包,所谓API(ApplicationProgramInterface)即应用程序接口。
API包—方面提供丰富的类与方法供大家使用,如画图形、播放声音等,另一方面又负责和系统软硬件打交道,圆满实现用户程序的功能。
所有JavaAPI包都以“java.”开头,以区别用户创建的包。
接口解决了Java不支持多重继承的问题,可以通过实现多个接口达到与多重继承相同的功能。
处理程序运行时的错误和设计程序同样重要,只有能够完善处理运行时出错的程序,软件系统才能长期稳定地运行,异常处理就是说明如何处理程序运行时出错的问题。
2.上网浏览JavaAPI文档
在地址上,可以看到Java系统提供的JavaAPI文档,类文档的内容主要是:
类层次、类及用途描述、成员变量列表、构造方法列表、成员方法列表、从类层次上继承的方法列表、成员变量的详细说明、构造方法详细说明、成员方法详细说明。
在这里可以看到Java提供的JavaAPI文档的最新内容
二.创建并使用自定义包
1.自定义包的声明方式
声明包语句必须添加在源程序的第一行,表示该程序文件声明的全部类都属于这个包。
2.创建自定义包Mypackage
在存放源程序的文件夹中建立一个子文件夹Mypackage。
例如,在“E:
\javademo”文件夹之中创建一个与包同名的子文件夹Mypackage(E:
\javademo\Mypackage),并将编译过的class文件放入该文件夹中。
注意:
包名与文件夹名大小写要一致。
再添加环境变量classpath的路径,例如:
D:
\java\\lib;E:
\javademo
3.在包中创建类
(1)程序功能:
在源程序中,首先声明使用的包名Mypackage,然后创建YMD类,该类具有计算今年的年份,可以输出一个带有年月日的字符串的功能。
(2)编写文件,源代码如下。
packageMypackage;;et;2a
(2)编译并运行
四.了解异常处理机制
1.错误与异常
在程序执行期间,会有许多意外的事件发生。
例如,程序申请内存时没有申请到、对象还未创建就被使用、死循环等,称为运行错误。
据错误的性质将运行错误分为错误与异常两种类型。
(1)错误
程序进入了死循环或内存溢出,这类现象称为错误或致命性错误。
错误只能在编程阶段解决,运行时程序本身无法解决,只能依靠其它程序干预,否则会一直处于一种不正常的状态。
(2)异常
运算时除数为0,或操作数超出数据范围,打开一个文件时发现文件不存在,网络连接中断等等,这类运行错误现象称为异常。
对于异常情况,可在源程序中加入异常处理代码,当程序出现异常时,由异常处理代码调整程序运行流程,使程序仍可正常运行直到正常结束。
由于异常是可以检测和处理的,所以产生了相应的异常处理机制。
而错误处理一般由系统承担。
对于一个应用软件,异常处理机制是不可缺少的。
程序员必须在程序中考虑每一个可能发生的异常情况并进行处理,以保证程序在任何情况下都能正常运行。
事实证明,一个仔细设计了异常处理的程序,可以长时间的可靠运行,而不容易发生致命的错误,如程序被迫关闭、甚至系统终止等等。
所以学会进行异常情况处理对于想编写功能完善且具有实用价值的程序员来说是必不可少的。
2.异常发生的原因
(1)Java虚拟机检测到了非正常的执行状态,这些状态可能是由以下几种情况引起的:
·表达式的计算违反了Java语言的语义,例如整数被0除。
·在载入或链接Java程序时出错。
·超出了某些资源限制,例如使用了太多的内存。
(2)Java程序代码中的throw语句被执行。
(3)异步异常发生。
异步异常的原因可能有:
·Thread的stop方法被调用。
·Java虚拟机内部错误发生。
3.异常处理机制
发生异常后,怎么处理异常呢?
Java提供了异常处理机制来处理异常。
分为两个步骤:
(1)抛出异常
Java是这样规定的:
当语义限制被违反时,将会抛出(throw)异常,即产生一个异常事件,生成一个异常对象,并把它提交给运行系统,再由运行系统寻找相应的代码来处理异常。
一个异常对象可以由Java虚拟机来产生,也可以由运行的方法生成。
异常对象中包含了异常事件类型、程序运行状态等必要信息。
(2)捕获异常
异常抛出后,运行时系统从生成异常对象的代码开始,沿方法的调用栈进行查找,直到找到包含相应处理的方法代码,并把异常对象交给该方法为止,这个过程称为捕获(catch)异常。
简单说异常处理机制就是:
当语义限制被违反时,将会抛出异常对象,并将引起程序流程从异常发生点转移到程序员指定的处理异常方法代码处进行异常处理。
五.了解异常对象的类型
在异常发生后,系统会产生一个异常事件,生成一个异常对象,有哪些异常对象呢?
这些异常对象来自哪些类呢?
Java中的异常类具有层次结构组织。
其中,Throwable类是Error错误类和Exception异常类的父类,它是Object的直接子类。
RuntimeException运行时异常类是Exception异常类的子类。
如图所示。
异常类的子类
(1)RuntimeException运行时异常类,主要包括以下异常子类:
·ArithmeticException算术异常类:
表示遇到了异常的算术问题,例如被0整除。
·ArrayStoreException数组下标越界异常类:
试图把与数组类型不相符的值存人数组。
·ClassCastException类型强制转换异常类:
试图把一个对象的引用强制转换为不合适的类型。
·IndexOutOfBoundsException下标越界异常类:
下标越界。
·NullPointerException空指针异常类:
试图使用一个空的对象引用。
·SecurityException违背安全原则异常类:
检测到了违反安全的行为。
(2)NoSuchMethodException方法未找到异常
(3)图形界面异常类
(4)输入输出异常类
·IOException:
申请I/O操作没有正常完成。
·EOFException:
在输入操作正常结束前遇到了文件结束符。
·FileNotFoundException:
在文件系统中,没有找到由文件名字符串指定的文件。
(5)Exception异常类的其它子类
·EmptyStackException:
试图访问一个空堆栈中的元素。
·NoSuchFieldException:
试图访问一个不存在的域。
·NoSuchMethodException:
试图访问不存在的方法。
·ClassNotFoundException:
具有指定名字的类或接口没有被发现。
·CloneNotSupportedException:
克隆一个没有实现Cloneable接口的类。
·IllegalAccessException:
试图用给出了完整的路径信息的字符串加载一个类,但是当前正在执行的方法无法访问指定类,因为该类不是public类型或在另一个包中。
·InstantiationException:
试图使用Class的newInstance方法创建一个对象实例,但指定的对象没有被实例化,因为它是一个接口、抽象类或者一个数组。
·InterruptedException:
当前的线程正在等待,而另一个线程使用了Thread的interrupt方法中断了当前线程。
2.Error错误类的子类
(1)VirtualMachineError虚拟机错误
OutOfMemoryError内存溢出错误
StackOverflowError栈溢出错误
(2)LinkageError链接错误
NoClassDefNotFoundError类定义未找到错误
(3)图形界面错误
六.使用try…catch语句处理异常
1.异常类型匹配的处理方式
(1)程序功能:
首先说明"这是一个异常处理的例子",然后在程序中主动产生一个
ArithmeticException类型被0除的异常,并用catch语句捕获这个异常。
最后通过
ArithmeticException类的对象e的方法getMessage给出异常的具体类型并显示出来。
(2)编写使用try…catch语句处理异常的程序文件,源代码如下。
publicclassLX4_6{
publicstaticvoidmain(String[]arg3){
这是一个异常处理的例子\n");
try{
inti=10;
i/=0;
}
/*在此处利用catch语句捕获ArithmeticException异常*/
finally{
语句被执行");
}
}
}
(3)编译并运行程序。
2.异常类型不匹配的程序
(1)编写一个catch语句中声明的异常类型不匹配的程序,源代码如下。
publicclassLX4_7{
publicstaticvoidmain(String[]args){
“这是一个异常处理的例子\n”);
try{
inti=10;
i/=0;
}
catch(IndexOutOfBoundsExceptione){
异常是:
"+());
}
finally{
语句被执行");
}
}
}
(2)编译并运行程序LX4_7,结果如图所示。
因为LX4_7程序试图捕获一个异常类为IndexOutOfBoundsException的异常,但发生的异常却是ArithmeticException类,所以,程序可以通过编译但在运行时,系统会给出异常报告:
报告所发生的但没有被捕获的异常。
不过在此之前,其它语句和finally语句将会被执行。
3.包含多个catch子句的异常处理程序
(1)程序功能:
在try子句中设计两个可能出现的异常,当a为0时会发生异常。
另外一个是肯定的异常,因为数组c的长度为1,定义c[42]是为法的。
通过两个catch子句分别来捕获异常。
(2)编写包含多个catch子句的程序,源代码如下。
publicclassLX4_8{
publicstaticvoidmain(String[]args){
try{
inta=;
="+a);
intb=42/a;
intc[]={1};
c[42]=99;
}
catch(ArithmeticExceptione){
发生了被0除:
"+e);
}
catch(ArrayIndexOutOfBoundsExceptione){
数组下标越界:
"+e);
}
}
}
(3)实验下面两种情况:
1)在程序运行时不输入参数,则的值为0,这将引起一个被0除异常。
其结果如图所示。
2)在运行程序时,输入22,将不会引起被0除异常,但会引起一另一个异常即数组下标越界ArrayIndexOutOfBoundsException。
因为整型数组只有一个元素c[0],程序中却要
使用c[42],这将发生数组下标越界。
运行结果如图所示。
七.使用throw语句抛出异常
1.throw语句的作用
在上面的实验中,可以发现,异常对象是Java运行时由系统抛出的。
抛出异常也可以通过使用throw语句实现。
throw是Java语言的关键字,用来告知编译器此处要发生一个异常。
throw后面要跟一个新创建的异常类对象,用于指出异常的名称和类型。
throw语句格式为:
程序会在throw语句处立即终止,转向try…catch寻找异常处理方法,不再执行throw后面的语
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 实验 手册