JAVA实验报告1.docx
- 文档编号:27690487
- 上传时间:2023-07-04
- 格式:DOCX
- 页数:13
- 大小:67.27KB
JAVA实验报告1.docx
《JAVA实验报告1.docx》由会员分享,可在线阅读,更多相关《JAVA实验报告1.docx(13页珍藏版)》请在冰豆网上搜索。
JAVA实验报告1
实验一Java编程环境
一、实验目的:
了解Java的配置环境,掌握JavaApplication的程序结构和开发过程,了解JavaApplet的功能与程序结构,掌握Java程序的调试、运行过程。
二、实验内容:
1、Java环境的配置训练。
2、编写一个Application程序,显示“WelcometoJavaProgramming”
三、主要代码及运行结果:
1、JDK开发环境配置
(1)J2SDK1.6.0开发环境安装在“C:
\ProgramFiles\Java\jdk1.6.0”目录下。
(2)设置环境变量PATH和CLASSPATH:
进入命令行(MS-DOS)方式,进行如下设置:
SETPATH=C:
\ProgramFiles\Java\jdk1.6.0\bin;%PATH%
SETCLASSPATH=.;%CLASSPATH%
在WindowsXP下设置:
右键点击[我的电脑],选择[属性],选择[高级]选项卡,单击[环境变量]按钮,在[系统变量]找到path变量,单击[编辑]按钮,把C:
\ProgramFiles\Java\jdk1.6.0添加到里面,与已有的内容用分号隔开。
在[系统变量]中单击[新建]按钮,在[变量名]文本框中输入名称CLASSPATH,在[变量值]文本框中输入.;C:
\ProgramFiles\Java\jdk1.6.0\lib\tools.jar;C:
\ProgramFiles\Java\jdk1.6.0\jre\lib\rt.jar;
2、编写一个Application程序,显示“WelcometoJavaProgramming”
(1)打开编辑器。
(2)键入如下程序:
importjava.io.*;
publicclassHelloWorld{
publicstaticvoidmain(Stringarg[]){
System.out.println("WelcometoJavaProgramming");
}
}
(3)保存文件。
(4)进入命令行(MS-DOS)方式,设定当前目录为“D:
\Java\”,运行Java编译器:
D:
\Java>javacHelloWorld.java
(5)如果输出错误信息,则根据错误信息提示的错误所在行返回EditPlus编辑器进行修改。
如果没有输出任何信息或者出现“deprecation”警告,则认为编译成功,此时会在当前目录中生成HelloWorld1.class文件。
(6)利用Java解释器运行这个JavaApplication程序,并查看运行结果。
D:
\Java>javaHelloWorld
输出结果为:
WelcometoJavaProgramming
四、思考题
(1)java编译器和解释器分别是什么?
java编译器是javac.exe,java解释器是java.exe。
(2)JavaApplication源程序保存时有什么需要注意问题,为什么?
JavaApplication源程序保存时文件名称需要和主类名一致,如果没有主类,则可以采用符合java命名规范的任意类名,但是,在执行时,必须执行相应类名字。
因为java虚拟机自动从主类的main()方法开始执行java程序,没有主类的java类,需要测试类执行该类。
实验二Java语言基础
一、实验目的:
掌握Java基本语言基础:
基本数据类型、操作符、流程控制语句。
二、实验内容:
2、编程掌握一般算术运算的实现。
5、编程实现Fibonacci数列;
其中:
Fibonacci数列的定义为:
F1=1,F2=1,…,Fn=Fn-1+Fn-2 (n>=3)
三、主要代码及运行结果:
1、运行下面的程序,掌握算术运算。
importjava.io.*;
publicclassArithmaticOp{
publicstaticvoidmain(Stringargs[]){
inta=5+4;//a=9
intb=a*2;//b=18
intc=b/4;//c=4
intd=b-c;//d=14
inte=-d;//e=-14
intf=e%4;//f=-2
doubleg=18.4;
doubleh=g%4;//h=2.4
inti=3;
intj=i++;//i=4,j=3
intk=++i;//i=5,k=5
System.out.println("a="+a);
System.out.println("b="+b);
System.out.println("c="+c);
System.out.println("d="+d);
System.out.println("e="+e);
System.out.println("f="+f);
System.out.println("g="+g);
System.out.println("h="+h);
System.out.println("i="+i);
System.out.println("j="+j);
System.out.println("k="+k);
}
}
intj=i++执行过程是:
先是j=i,然后i=i+1;intk=++i执行过程是:
先i=i+1,然后k=i。
2、编程实现Fibonacci数列;
其中:
Fibonacci数列的定义为:
F1=1,F2=1,…,Fn=Fn-1+Fn-2 (n>=3)
源码如下:
publicclassFibn{
publicstaticvoidmain(Stringargs[]){
inti;
intf[]=newint[10];
f[0]=f[1]=1;
for(i=2;i<10;i++)
f[i]=f[i-1]+f[i-2];
for(i=1;i<=10;i++)
System.out.println("F["+i+"]="+f[i-1]);
}
}
实验结果:
四、思考题
(1)Java运算符的优先级与结合性是怎样的?
优先级
运算符
类
结合性
1
()
括号运算符
由左至右
1
[]
方括号运算符
由左至右
2
!
、+(正号)、-(负号)
一元运算符
由右至左
2
~
位逻辑运算符
由右至左
2
++、--
递增与递减运算符
由右至左
3
*、/、%
算术运算符
由左至右
4
+、-
算术运算符
由左至右
5
<<、>>
位左移、右移运算符
由左至右
6
>、>=、<、<=
关系运算符
由左至右
7
==、!
=
关系运算符
由左至右
8
&(位运算符AND)
位逻辑运算符
由左至右
9
^(位运算符号XOR)
位逻辑运算符
由左至右
10
|(位运算符号OR)
位逻辑运算符
由左至右
11
&&
逻辑运算符
由左至右
12
||
逻辑运算符
由左至右
13
?
:
三目运算符
由左至右
14
=
赋值运算符
由右至左
(2)for、while和do-while循环的区别?
如果明确的知道循环次数,可以使用for循环语句。
当事先不知道循环执行次数的时,就要用到while循环。
do…while循环也是用于未知循环执行次数的时候,使用do…while循环时,至少都会执行一次循环主体。
实验三方法和数组
一、实验目的:
1、通过实验掌握数组的使用,为以后的Java程序编程打下基础。
2、掌握Java实例方法的定义和调用。
二、实验内容:
1.编写一个Student类,包含学号、姓名、成绩、年龄等成员变量,以及设置变量和提取变量的方法。
通过测试类TestStudent进行测试。
三、主要代码及运行结果:
1、编写一个Student类,包含学号、姓名、成绩、年龄等成员变量,以及设置变量和提取变量的方法。
通过测试类TestStudent进行测试。
classStudent{
privateStringno;
privateStringname;
privateintage;
privatedoublescore;
publicvoidsetNo(Stringno){
this.no=no;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicvoidsetAge(intage){
this.age=age;
}
publicvoidsetScore(doublescore){
this.score=score;
}
publicStringgetNo(){
returnno;
}
publicStringgetName(){
returnname;
}
publicintgetAge(){
returnage;
}
publicdoublegetScore(){
returnscore;
}
}
publicclassTestStudent{
publicstaticvoidmain(String[]args){
Students1=newStudent();
s1.setNo("20130001");
s1.setName("Tom");
s1.setAge(21);
s1.setScore(97);
System.out.println("该生信息为:
"+s1.getNo()+""+s1.getName()+""+s1.getAge()+""+s1.getScore());
}
}
四、思考题
(1)二维数组中的length表示什么?
“数组名称.length”,一维数组中表示数组元素的个数,二维数组中表示该数组含有的一维数组的个数。
(2)数组初始化有几种方式,各种数据类型的默认初始化值是什么?
数组的初始化分为动态初始化和静态初始化两种。
实验四类和对象
一、实验目的:
掌握java类设计的基本方法,掌握继承实现类的复用,熟悉变量的隐藏和方法的覆盖。
二、实验内容:
1、定义图形类shape,包含设置图形类别、获取图形类别、显示类别信息和获取图形面积等方法。
定义图形类子类Circle,包含设置半径、获取半径、计算面积和周长等方法。
并用测试类测试。
三、主要代码及运行结果:
1、publicclassShape{
Stringtype;//图形类别
publicvoidsetType(Stringtype){
this.type=type;
}
publicStringgetType(){
returntype;
}
//显示类别信息
publicvoidshowInfo(){
System.out.println(type);
}
publicvoidgetArea(){
//形状的类别未确定,无法计算面积,方法体为空
}
}
publicclassCircleextendsShape{
doubleradius;//圆的半径
publicvoidsetRadius(doubleradius){
this.radius=radius;
}
publicdoublegetRadius(){
returnradius;
}
publicvoidgetArea(){
showInfo();//直接调用父类的方法
System.out.println("其面积为:
"+Math.PI*radius*radius);
}
publicdoublegetPerimeter(){
return2*Math.PI*radius;
}
}
publicclassTestCircle{
publicstaticvoidmain(String[]args){
CirclemyCircle=newCircle();
myCircle.setRadius(2.1);//Circle自己新定义的方法
myCircle.setType("这是一个圆!
");//调用继承的父类方法
myCircle.getArea();//调用Circle重写的父类的方法
doubleperimeter=myCircle.getPerimeter();
System.out.println("其周长为:
"+perimeter);
}
}
四、思考题
(1)一个方法或一个块内定义的变量是否可以在方法外或块外使用?
这种变量称为什么?
方法的形式参数是否可以在方法之外使用?
一个方法或一个块内定义的变量不可以在方法外或块外使用,这种变量为局部变量。
方法的形式参数只能在该方法的花括号,不能再方法之外使用。
(2)为什么说构造函数是一种特殊的方法?
特殊在哪里?
构造函数什么时候执行?
被谁调用?
在java语言中,构造函数又称构造方法。
特殊性在于,与普通方法的区别是,他与类名相同,不返回结果也不加void返回值。
构造函数的作用是初始化对象,即在创建对象时被系统调用(与普通方法不同,程序不能显示调用构造函数)。
构造函数还能够被重载,即可以传入参数,当程序中包含有带参的构造函数时,系统将不会再提供的无参构造函数。
实验五深入类设计
一、实验目的:
通过实验验证类的高级特性的相关语法,掌握类的静态域、静态方法,包,掌握接口的定义和实现方法。
二、实验内容:
1、类StaticDemo存放在文件StaticDemo.java中,仔细阅读程序,观察程序的运行结果,理解static方法和变量的使用方法。
三、主要代码及运行结果:
1、类StaticDemo
//StaticDemo.java文件
publicclassStaticDemo{
privatestaticintx;//静态变量
privateinty;
publicstaticintgetX(){
returnx;}
publicstaticvoidsetX(intnewX){
x=newX;}
publicintgetY(){
returny;}
publicvoidsetY(intnewY){
y=newY;}
publicstaticvoidmain(String[]args){
System.out.println("静态变量x="+StaticDemo.getX());
StaticDemoa=newStaticDemo();
StaticDemob=newStaticDemo();
a.setX
(1);
System.out.println("a.setX
(1)后,a和b对x的取值是:
");
System.out.println("静态变量a.x="+a.getX());
System.out.println("静态变量b.x="+b.getX());
b.setX(3);
System.out.println("b.setX(3)后,a和b对x的取值是:
");
System.out.println("静态变量a.x="+a.getX());
System.out.println("静态变量b.x="+b.getX());
a.setY
(2);//访问实例方法
b.setY(4);
System.out.println("a,b的最后的值为”);
System.out.println("静态变量a.x="+a.getX());
System.out.println("实例变量a.y="+a.getY());
System.out.println("静态变量b.x="+b.getX());
System.out.println("实例变量b.y="+b.getY());
}
}
四、思考题
1、如何定义一个静态的方法和静态的常量,我们使用的关键字是什么?
与实例常量和方法的定义有何区别?
定义一个静态方法和静态的变量用static关键字,静态方法不需要实例化就可以通过类名直接访问类中定义的方法,而实例化时必须使用new关键字,。
静态常量在其他的类中可以用类名.变量名直接调用,而实例常量只能在本身的类中调用
2、若某个类要实现一个接口,需要在类中完成那些工作?
首先要实现implements接口,然后覆盖里面的方法,然后再进行使用。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 实验 报告