Java程序设计实验报告.docx
- 文档编号:10719929
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:18
- 大小:19.70KB
Java程序设计实验报告.docx
《Java程序设计实验报告.docx》由会员分享,可在线阅读,更多相关《Java程序设计实验报告.docx(18页珍藏版)》请在冰豆网上搜索。
Java程序设计实验报告
数学与系统科学系实验报告
[2010—2011学年第一学期]
基本信息
实验课程
Java语言程序设计
设课形式
非独立
课程学分
3学分
实验项目
Java基本语法练习
项目类型
验证
项目学时
2学时
实验室名
信息与计算数学实验室
专业名称
信息与计算科学
年级
2006级
实验班组
信息本科
学生姓名
许星
学号
2007×××××
同组学生
实验日期
×月×日
二、实验教师对实验报告的评价及意义
实验一实验项目Java基本语法练习(实验日期:
×月×日)
三、实验预习
实验目的 1.理解Java程序语法结构,掌握顺序结构、选择结构和循环结构语法的程序设计方法。
2.通过以上内容,掌握Java语言的编程规则。
实验要求1.if...else语句判断某一年是否为闰年。
闰年的条件是符合下面二者之一:
能被4整除,但不能被100整除;能被4整除,又能被100整除。
2.使用while语句编写求1+2+…+100之和的源程序
实验条件
信息与计算数学实验室××号
四、实验过程
1.打开一个UltraEdit编辑器,编写判断某一年是否为闰年的源程序:
KY2_6.java
publicclassKY2_6
{publicstaticvoidmain(Stringargs[])
{
booleanleap;
intyear=2005;
if((year%4==0&&year%100!
=0)||(year%400==0))
System.out.println(year+"年是闰年");
else
System.out.println(year+"年不是闰年");
}
2.打开一个UltraEdit编辑器,1+2+…+100之和的源程序:
KY2_10.java
classKY2_10
{
publicstaticvoidmain(Stringargs[]){
intn=1,sum=0;
while(n<=100)
{
sum+=n++;
}
System.out.println("1+2+...+100="+sum);
}
}
五.数据处理和实验结论
1.在DOS命令提示符下输入:
javacKY2_6.java
javaKY2_6
输出:
2005年不是闰年
2.在DOS命令提示符下输入:
javacKY2_10.java
javaKY2_10
输出:
1+2+…+100=5050
六、结果分析与讨论
1中的if-else选择语句可以用if-else嵌套来实现,其中else一般与其上面最接近的无else与之匹配的if匹配
While循环语句中要有改变循环控制变量的语句,防止死循环。
实验二实验项目类和对象的创建和使用(实验日期:
×月×日)
三、实验预习
实验目的 1.理解Java语言是如何体现面向对象编程基本思想,掌握如何创建类和对象
2.掌握OOP方式进行程序设计的方法。
实验要求 编写一个显示当前日期和明天日期的程序。
实验条件
信息与计算数学实验室××号
四、实验过程
publicclassExam3_6
{
privateintyear,month,day;
Exam3_6()
{year=2000;
month=1;
day=1;
}
Exam3_6(inta,intb,intc)
{year=a;
month=b;
day=c;
}
Exam3_6(Exam3_6d)
{year=d.year;
month=d.month;
day=d.day;
}
publicvoidoutDate()
{
System.out.print(year+”/”+month+”/”+day);
}
publicExam3_6tomorrow()
{Exam3_6d=newExam3_6(this);
d.day++;
if(d.day>d.daysInMonth())
{d.day=1;
d.month++;
if(d.month>12)
{d.month=1;
d.year++;
}
}
rerurnd;
}
publicintdaysInMonth()
{switch(month)
{case1:
case3:
case5:
case7:
case8:
case10:
case12:
return31;
case4:
case6:
case9:
case11:
return30;
default:
if(year%4==0&&year%100!
=0||year%400==0)
return29;
else
return28;
}
}
publicstaticvoidmain(Stringargs[])
{Exam3_6d1=newExam3_6();
System.out.print(”Thecurrentdateis(year/month/day):
”);
d1.outDate();
System.out.println();
System.out.print(”Itstomorrowdateis(year/month/day):
”);
d1.tomorrow().outDate();
System.out.println();
Exam3_6dd=newExam3_6(2004,1,8);
System.out.print(”Thecurrentdateis(year/month/day):
”);
dd.outDate();
System.out.println();
System.out.print(”Itstomorrowdateis(year/month/day):
”);
dd.tomorrow().outDate();
System.out.println();
}
}
五.数据处理和实验结论
运行结果
Thecurrentdateis(year/month/day):
2000/1/1
Itstomorrowis(year/month/day):
2000/1/2
Thecurrentdateis(year/month/day):
2004/1/8
Istomorrowis(year/month/day):
2004/1/9
六、结果分析与讨论
对象在使用之前一定要先创建
对象在创建的过程中会通过构造方法对对象的变量进行初始化
实验三实验项目静态变量和静态方法(实验日期:
×月×日)
三、实验预习
实验目的 1.掌握静态变量的使用。
2.掌握静态方法的使用。
实验要求 运行下面程序,分析其输出结果。
实验条件
信息与计算数学实验室××号四、实验过程
publicclassA
{inta;
staticintb;
voidsetab(inti)
{a=i;
b=i+1
}
intgeta()
{returna;}
staticvoidsetb(inti)
{b+=i;}
staticintgetb()
{returnb;}
}
publicclassExam3_7
{publicstaticvoidmain(Stringargs[])
{Ax=newA();
Ay=newA();
x.setab(5);
y.setab(10);
System.out.println(“x.a=”+x.geta()+”,y.a=”+y.geta());
x.setb(-5);
y.setb(-10);
System.out.println(“x.b=”+x.getb()+”,y.b=”+y.getb());
}
}
五.数据处理和实验结论1运行结果x.a=5,y.a=10
x.b=-4,y.b=-4
六、结果分析与讨论静态变量保存在类的公共内存单元中,任何一个对象都可以访问它修改它。
可以通过类名访问,也可以通过对象名访问。
静态方法是属于整个类的,在内存中的代码是随着类的定义而进行分配的,不被某个对象所专有。
主要使用类名访问。
实验四实验项目包与访问控制权限(实验日期:
×月×日)
三、实验预习
实验目的 1.掌握包的创建和引用;
2.掌握访问控制权限;
实验要求
1.编写三个类,并将类添加到不同包中,其中一个类引用另外两个类。
2.验证类成员的访问控制权限。
信息与计算数学实验室××号
四、实验过程
//A.java
packagepkg1;
publicclassA
{inta,b;
publicvoidsetab(inti,intj)
{a=i;b=j;}
publicvoidprintab()
{intsum=a+b;
System.out.println(“a+b=”+sum);
}
}
//B.java
packagepkg1.pkg2;
publicclassB
{intx,y;
publicvoidsetxy(inti,intj)
{x=i;y=j;}
publicvoidprintxy()
{intproduct=x*y;
System.out.println(“x*y=”+product);
}
}
//Exam3_24.java
importpkg1.A;
importpkg1.pkg2.B;
classExam3_24
{publicstaticvoidmain(Stringargs[])
{Aobja=newA();
obja.setab(3,5);
obja.printab();
Bobjb=newB();
objb.setxy(3,5);
objb.printxy();
}
}
五.数据处理和实验结论
在DOS命令提示符下输入:
javacExam3_24.java
javaExam3_24
输出:
a+b=8
x*y=15
六、结果分析与讨论
如果一个类访问另一个包中的类,必须通过包来引用,引用方法是在声明该类前,使用import语句.
实验五实验项目类的继承与多态(实验日期:
×月×日)
三、实验预习
实验目的 1.掌握类的继承机制;
2.掌握变量隐藏及方法覆盖;
3.理解子类构造方法与父类构造方法的关系;
4.理解动态多态的概念。
实验要求
编写父类及子类,在子类中完成对父类的继承、子类对父类变量隐藏和子类对父类方法覆盖,编写测试类对子类的继承及变量隐藏和方法覆盖进行验证
实验条件
信息与计算数学实验室××号
四、实验过程
classA
{inta=10;
voidprint()
{System.out.println(“classA”);}
}
classBextendsA
{chara=’m’;
voidprint()
{System.out.println(“classB”);}
voidprintB()
{
super.printT();
print();
System.out.println(a);
System.out.println(super.a);
}
}
publicclassTest
{publicstaticvoidmain(Stringargs[])
{
Bb=newB();
b.printB();
}
五.数据处理和实验结论
在DOS命令提示符下输入:
javacC.java
javaC
输出:
classA
classB
m
10
六、结果分析与讨论
类A和类B中有一个同名变量a,一个是int型,一个是char型。
在B中的printB()方法中,参数a表示类B中的成员变量a;参数super.a表示类A中的成员变量a.在子类B中对父类A中的printT方法进行了方法覆盖。
实验六实验项目Applet小程序应用(实验日期:
×月×日)
三、实验预习
实验目的
1.熟悉Applet类。
2.掌握applet的程序结构
3.学会编写启动applet程序的html文档;
4.观察applet程序的生命周期;
实验要求
编写applet程序1,显示init()、start()、stop()和destroy()方法的执行。
实验条件
信息与计算数学实验室××号
四、实验过程
importjava.applet.Applet;
importjava.awt.*;
publicclassMyappletextendsApplet
{privateLabela;
publicvoidinit()
{System.out.println("Applet:
init()");}
publicvoidstart()
{System.out.println("Applet:
start()");
a=newLabel("Hello!
");
add(a);
}
publicvoidstop()
{System.out.println("Applet:
stop()");
remove(a);
}
publicvoiddestroy()
{System.out.println("Applet:
destroy()");}
}
五.数据处理和实验结论
在DOS命令提示符下输入:
javacMyapplet.java
appletviewerMyapplet.html
打开applet小程序浏览器,显示:
Hello!
同时在DOS命令提示符下显示:
Applet:
init()
Applet:
start()
六、结果分析与讨论
Applet小程序的生命周期中有四个状态:
初始态、运行态、停止态和消亡态,分别对应Applet类的四个方法:
init()、start()、stop()和destroy()。
其中init()方法和destroy()方法只执行一次,start()和stop()执行多次。
实验七实验项目Applet小程序应用(实验日期:
×月×日)
三、实验预习
实验目的
1.掌握使用Applet显示图像。
2.掌掌握使用Applet播放声音
实验要求
编写Applet程序,在屏幕上显示一幅图像”Winter.jpg“,并播放一首音乐”music.wave“使其作为背景音乐重复播放,在关闭Web页面或者最小化Web页面时停止。
实验条件
信息与计算数学实验室××号
四、实验过程
importjava.applet.Applet;
importjava.applet.AudioClip;
importjava.*;
publicclassExam4_15extendsApplet
{Imagepic;
intw,h;
AudioClipmymusic;
publicvoidinit()
{
mymusic=getAudioClip(getDocumentBase(),"Tom.mid");
}
publicvoidpaint(Graphicsg)
{Imagepic=getImage(getDocumentBase(),"zm.jpg");intw=pic.getWidth(this);
inth=pic.getHeight(this);
g.drawImage(pic,10,30,(int)(w*0.3),(int)(h*0.3),this);
}
publicvoidstart()
{mymusic.loop();}
publicvoidstop()
{mymusic.stop();}
}
五.数据处理和实验结论
在DOS命令提示符下输入:
javacExam4_15.java
appletviewerExam4_15.html
打开applet小程序浏览器,显示:
一幅图像并伴有背景音乐。
六、结果分析与讨论
在Applet小程序中使用了loop方法后,即使关闭播放声音的Web页面,声音也不会停止,需在Applet小程序中使用stop方法。
实验八实验项目多线程(实验日期:
×月×日)
三、实验预习
实验目的
1.掌握使用Thread创建线程的方法。
2.掌握使用Runnabl创建线程的方法
实验要求
分别使用继承Thread类和实现Runnable接口的方法编写一个应用程序,创建三个线程分别显示各自的线程名与当前时间,要求三个线程的线程名分别为:
A,B,C,三个线程在输出各自内容之后均休眠1000毫秒。
实验条件
信息与计算数学实验室××号
四、实验过程
(1)使用继承Thread类的方法编写程序
importjava.util.Date;
classTimePrinterextendsThread
{publicTimePrinter(Stringstr)
{super(str);}
publicvoidrun()//定义run()方法
{try{
System.out.println(getName()+":
"+newDate(System.currentTimeMillis()));
sleep(1000);}catch(InterruptedExceptione)
{System.out.println(e);}
}
publicstaticvoidmain(Stringargs[])
{TimePrintermt=newTimePrinter("A");
mt.start();
newTimePrinter("B").start();
newTimePrinter("C").start();
}
}
(2)使用实现Runnable接口的方法编写程序
importjava.util.Date;
classTimePrinter2implementsRunnable
{Stringname;
publicTimePrinter2(Stringstr)
{name=str;}
publicvoidrun()//定义run()方法
{try{
System.out.println(name+":
"+newDate(System.currentTimeMillis()));
Thread.sleep(1000);}catch(InterruptedExceptione)
{System.out.println(e);}
}
publicstaticvoidmain(Stringargs[])
{TimePrinter2mt=newTimePrinter2("A");
Threadt=newThread(mt);
t.start();
newThread(newTimePrinter("B")).start();
newThread(newTimePrinter("C")).start();
}
}
五.数据处理和实验结论
(1)
在DOS命令提示符下输入:
javacTimePrinter.java
javaTimePrinter
在DOS命令提示符下按某种顺序显示三个线程:
A,B,C的输出结果,
(2)
在DOS命令提示符下输入:
javacTimePrinter2.java
javaTimePrinter2
在DOS命令提示符下按某种顺序显示三个线程:
A,B,C的输出结果,
六、结果分析与讨论
使用两种创建线程两种方法的任何一种方法创建线程程序都必须覆盖run()方法
由Thread的构造方法所创建的线程对象,不能自动运行,必须调用start()方法才能真正启动该线程。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 程序设计 实验 报告