java程序设计实验.docx
《java程序设计实验.docx》由会员分享,可在线阅读,更多相关《java程序设计实验.docx(14页珍藏版)》请在冰点文库上搜索。
java程序设计实验
《Java程序设计实验报告》
实验一Java开发环境的安装与配置
一实验目的与要求
1.熟悉安装和配置JDK开发环境
2.熟悉安装和配置IDE开发工具
3.掌握Java程序编辑、编译和运行的过程
4.掌握Java程序的构成特点
5.总结在调试过程中的错误。
二实验环境
应用软件:
Jdk1.5.0,jcreator
操作系统:
window2000以上
三实验思考
1什么是JVM,它的作用是什么?
2简单总结一下一个Java程序的基本结构。
四实验内容
1按照下面的步骤设置环境变量path
(1)找到机器上已安装的jdk的所在路径。
C:
\j2sdk1.4.2_14
(2)找到它的子目录bin,在该目录下应该包含java.exe,javac.exe,appletviewer等应用程序。
记录下bin的完整路径。
C:
\j2sdk1.4.2_14\bin
(3)切换到windows的命令行方式,在默认的目录下,输入命令java,记录结果。
关闭命令行方式。
MicrosoftWindowsXP[版本5.1.2600]
(C)版权所有1985-2001MicrosoftCorp.
C:
\DocumentsandSettings\user>java
Usage:
java[-options]class[args...]
(toexecuteaclass)
orjava[-options]-jarjarfile[args...]
(toexecuteajarfile)
whereoptionsinclude:
-clienttoselectthe"client"VM
-servertoselectthe"server"VM
-hotspotisasynonymforthe"client"VM[deprecated]
ThedefaultVMisclient.
-cp
-classpath
A;separatedlistofdirectories,JARarchives,
andZIParchivestosearchforclassfiles.
-D=
setasystemproperty
-verbose[:
class|gc|jni]
enableverboseoutput
-versionprintproductversionandexit
-version:
requirethespecifiedversiontorun
-showversionprintproductversionandcontinue
-jre-restrict-search|-jre-no-restrict-search
include/excludeuserprivateJREsintheversionsearch
-?
-helpprintthishelpmessage
-Xprinthelponnon-standardoptions
-ea[:
...|:
]
-enableassertions[:
...|:
]
enableassertions
-da[:
...|:
]
-disableassertions[:
...|:
]
disableassertions
-esa|-enablesystemassertions
enablesystemassertions
-dsa|-disablesystemassertions
disablesystemassertions
C:
\DocumentsandSettings\user>
(4)右键点击“我的电脑”,打开“属性”->“高级”->“环境变量”,找到Path变量,
点击编辑按钮,在弹出的编辑对话框里,将步骤2的路径添加到尾部。
(5)重新打开命令行方式,输入java–version,如果正确显示java的版本号,则
说明环境设置成果。
MicrosoftWindowsXP[版本5.1.2600]
(C)版权所有1985-2001MicrosoftCorp.
C:
\DocumentsandSettings\user>java-version
javaversion"1.4.2_14"
Java(TM)2RuntimeEnvironment,StandardEdition(build1.4.2_14-b05)
JavaHotSpot(TM)ClientVM(build1.4.2_14-b05,mixedmode)
C:
\DocumentsandSettings\user>
(6)将以上过程以及你设置的path变量值填写到实验报告中,并解释一下为什么一定要设置该环境变量。
2打开windows自带的记事本,输入下面的代码:
publicclassHelloWorld{
publicstaticvoidmain(String[]args){
System.out.println(“hello,world!
”);
System.out.print(“hello,”);
System.out.print(“world!
”);
}
}
(1)将文件保存为HelloWorld.java,记录下文件所在的位置。
(2)切换到命令行方式,通过“cd”命令转至刚保存的文件所在路径下。
(3)输入javacHelloWorld.java进行编译。
(4)如果有错误发生,核对是否有错拼和漏拼。
如果没有错误,查看同一文件夹下是否
多出了一个名为“HelloWorld.class”的文件。
(5)继续在命令行下输入javaHelloWorld,观察输出的结果。
(6)将以上过程和结果填写到实验报告中。
Hello,world!
Hello,world!
3打开Jcreator程序。
(1)打开“config”(配置)菜单中的options(选项)选项,在选修窗口里找到“jdkprofiles”(JDK配置文件)选项,查看其中的的jdk路径是否是机器中安装的jdk路径,如果不是,需要修改为该路径。
(2)打开“file”菜单下的new->file,点击“filetype”,设置为javafile,点击filepath,设置路径,并填写文件名HelloWorld。
(3)输入上面的HelloWorld的代码。
(4)点击bulid菜单下的compile(编译文件)命令,观察输出。
(5)在编译无错的前提下,点击bulid菜单的“execute”(执行项目)命令,观察输出结果。
4以下对HelloWorld程序的源码做一些小的调整,需要记录下各种错误信息。
实验环境可以在记事本中进行,也可以在Jcreator中进行。
(1)将文件另存为Hello.java,进行编译,记录出错信息。
在保留Hello.java作为文件名的前提下,如何改正该错误?
将“publicclassHelloWorld”中的HelloWorld改为Hello
2)在源程序里,将class关键字去除,编译并记录出错信息。
HelloWorld.java:
1:
'class'or'interface'expected
publicHelloWorld{
^
1error
Processcompleted.
(3)将main方法全部注释掉,编译并执行,记录出错信息。
没错
(4)将System的首字母改为小写的s,编译并记录出错信息。
HelloWorld.java:
3:
packagesystemdoesnotexist
system.out.println("hello,world!
");
^
HelloWorld.java:
4:
packagesystemdoesnotexist
system.out.print("hello,");
^
HelloWorld.java:
5:
packagesystemdoesnotexist
system.out.print("world!
");
^
3errors
Processcompleted.
(5)将class关键字前的public去除,编译执行,记录出错信息。
没错
实验二Java基础编程
一实验目的与要求
1.掌握类的方法定义,掌握在main方法中创建类的实例,以及如何使用实例
2.学会编写简单的类。
二实验环境
应用软件:
Jdk1.5.0,jcreator
操作系统:
window2000以上
三实验思考
1一个空对象(没有方法、没有成员)有没有大小?
有大小。
2对“引用”这种类型做一下简单的描述或者定义。
四实验内容
1定义一个类FactorApp,
(1)添加一个方法intfactor(intn),在该方法中实现计算n的阶乘。
(2)程序应该阻止n<0。
(3)添加main方法,在main方法中,生成FactorApp的实例,调用实例的方法factor。
计算并输出结果。
importjava.util.*;
publicclassFactorApp{
intfactor(intn){
intresult;
if(n==0)
return1;
else{
result=n*factor(n-1);
returnresult;
}
}
publicstaticvoidmain(Stringargs[]){
FactorAppf=newFactorApp();
Scannerinput=newScanner(System.in);
System.out.println("inputanum:
");
intn=input.nextInt();
if(n<0)
System.out.println("error");
else
System.out.println(n+"!
="+f.factor(n));
}
}
2编写一个方法,实现将数组后移一位。
比如原数组为:
Array:
1221
→01221
publicclassArray{
voidcreat(inta[],intn){
for(inti=0;iScannerinput=newScanner(System.in);
a[i]=input.nextInt();
}
}
voidfactor(inta[],intn)
{
intArray[]=newint[n+1];
for(inti=n;i>0;i--)
{
Array[i]=a[i-1];
}
a=newint[n+1];
for(inti=0;i{
a[i]=Array[i];
System.out.print(a[i]+"");
}
System.out.println();
}
publicstaticvoidmain(String[]args){
Arrayp=newArray();
intn;
System.out.print("inputthesizeofArray:
");
Scannerinput=newScanner(System.in);
n=input.nextInt();
inta[]=newint[n];
System.out.println("inputtheArray:
");
p.creat(a,n);
p.factor(a,n);
}
}
3编写类Point以及测试类Pointtest,在Point类中:
(1)添加私有整型变量x,y,代表point的坐标。
(2)为每个变量增加get-成员方法。
(3)在PointTest类中实例化Point对象,并输出x,y的值,记录并分析该值。
(4)修改Point类。
添加构造器Point(intx,inty)。
(5)在PointTest类中采用缺省构造器构造Point对象,编译,记录出错信息。
Point.java:
16:
cannotfindsymbol
symbol:
constructorPoint()
location:
classPoint
Pointp=newPoint();
^
(6)按照带参构造器来构造Point对象。
试着传递以不同类型的值(8种基本类型),看看类型转换中可能出现的问题。
(7)重载构造器为Point(Pointp),即允许用另一个Point对象来初始化。
(8)添加成员方法print,打印格式形如:
Point(2,3)
(9)添加成员方法move(x,y),可以将坐标调整至(x,y)。
(10)添加静态方法distance(Pointp1,Pointp2),计算并输出两点的距离。
实验三Java的面向对象的编程
一实验目的与要求
1学习标准输入的方法
2学习Java中的面向对象编程的思想。
3练习复杂点的程序设计
二实验环境
应用软件:
Jdk1.5.0,jcreator
操作系统:
window2000以上
三实验思考
1学会Jdk帮助文档的使用。
2继承有哪些好处?
3简单总结目前为止你见到的Java与C++的差别。
四实验内容
1扩展上一个实验的Point类为Circle类,要求:
(1)增加成员radius(半径).
(2)设计它的构造器
(3)move方法要求每次移动后,半径增加1。
(4)在测试类中实例化该对象,并打印相关信息。
(5)在测试类中计算两个圆的距离(即两个圆心的距离)。
importjava.lang.Math;
publicclassPoint{
privateintx,y;
publicPoint(intx,inty){
this.x=x;
this.y=y;
}
publicPoint(Pointp){
x=p.x;
y=p.y;
}
intget_x(){
returnx;
}
intget_y(){
returny;
}
voidprint(){
System.out.println("点坐标为:
");
System.out.println("P("+get_x()+","+get_y()+")");
}
staticvoiddistance(Pointp1,Pointp2){
doubleresult=Math.sqrt((p1.get_x()-p2.get_x())*(p1.get_x()-p2.get_x())+(p1.get_y()-p2.get_y())*(p1.get_y()-p2.get_y()));
System.out.println(result);
}
voidmove(intx,inty){
this.x=x;
this.y=y;
}
}
classCircleextendsPoint{
privateintradius;
publicCircle(intx,inty,intradius){
super(x,y);
this.radius=radius;
}
voidmove(intx,inty){
super.move(x,y);
this.radius=radius+1;
}
staticvoiddistance(Circlec1,Circlec2){
doubleresult=Math.sqrt((c1.get_x()-c2.get_x())*(c1.get_x()-c2.get_x())+(c1.get_y()-c2.get_y())*(c1.get_y()-c2.get_y()));
System.out.println(result);
}
}
classPointTest{
publicstaticvoidmain(String[]args){
Pointp1=newPoint(2,3),p2=newPoint(p1);
Circlec1=newCircle(1,2,3);
c1.move(3,4);
System.out.println("x="+c1.get_x());
System.out.println("y="+c1.get_y());
p1.move(3,4);
p1.distance(p1,p2);
p1.print();
System.out.println("x="+p2.get_x());
System.out.println("y="+p2.get_y());
}
}
2利用以下代码,练习输入其他基本类型的数。
importjava.io.*;
publicclassIOTester{
publicstaticvoidmain(String[]args)throwsIOException{
BufferedReaderreader=newBufferedReader(newInputStreamReader(System.in));
inti=Integer.parseInt(reader.readLine());
Boolean.parseBoolean
System.out.println(i);
}
}
(1)读取小数型的值。
(2)读取bool型的值
(3)读取字符串
C
O
M
3编写一个猜单词位置的程序。
单词由三个字母组成,单词放在一个由7个格组成的容器内。
单词的起始位置随即产生。
要求用户输入字母的位置(从0-7),如果正确输出hitted,错误输出missed。
全部正确,输出finished,并退出。
(本题需附上源代码,没有完成可以附上部分源代码)。
//Math.random()