Java实验.docx
- 文档编号:11703725
- 上传时间:2023-03-30
- 格式:DOCX
- 页数:22
- 大小:487.57KB
Java实验.docx
《Java实验.docx》由会员分享,可在线阅读,更多相关《Java实验.docx(22页珍藏版)》请在冰豆网上搜索。
Java实验
序号
实验项目名称
学时
分配
必做/选做
1
熟悉JAVA开发环境
2
必做
2
Java基本语法
2
必做
3
面向对象的“对象”
2
必做
4
JAVA数组
2
必做
5
JAVA封装性设计与使用
2
必做
6
静态变量、静态方法与包
2
必做
7
Java常用系统类
2
必做
8
对象的进一步探讨--面向对象中的继承
2
必做
9
深入多态
2
必做
10
基于SWING的图形界面编程
2
必做
11
可视化程序的事件处理
2
必做
合计
22
实验一熟悉Java开发环境
(验证性2学时)
一、实验目的与要求:
1掌握JavaApplication程序的开发过程并编写第一个JavaApplication程序
*2掌握JavaApplet程序的开发过程并编写第一个JavaApplet程序。
*3练习简单的HTML文件配合JavaApplet使用。
4熟悉jdk的使用
二、实验内容:
1编写一个JavaApplication程序,在屏幕上显示”Thisismyfirstjavaprogram!
”.
*2编写第一个JavaApplet程序,在屏幕上显示”ThisismyfirstJavaApplet!
”
三、实验步骤:
1、jdk的使用
jdk开发工具包可以从网站下载,jdk不是集成编译环境,须手动运用命令行程序进行编译和解释执行
1)编辑.java文件
可以在记事本或其他纯文本编辑器中编辑,保存时把文件扩展名定为.java即可,当然要注意文件名命名的要求
2)编译生成.class文件
进入dos系统进行编译(如图1.1所示),格式如javacMyFirstApplication.java,要注意
图1.1进入命令行
看javac.exe的路径并且MyFirstApplication.java文件路径和javac.exe路径一样。
编译成功后就能在浏览器中看见多了一个MyFirsApplication.class或更多的.class文件。
如图1.2所示
图1.2使用jdk编译MyFirstApplication.java文件
3)解释执行
ØApplication程序:
同样是在dos系统下解释执行,格式如javaMyFirstApplication,注意.class后缀别加,如图1.3所示。
图1.3解释执行MyFirstApplication.class程序
*applet程序
进入dos系统进行编译,格式如javacMyFirstApplet.java,要注意看javac.exe的路径并且MyFirstApplet.java文件路径和javac.exe路径一样。
编译成功后就能在浏览器中看见多了一个MyFirsApplet.class或更多的.class文件
在解释执行前要把该applet程序(MyFirstApplet.class)嵌入到相应的HTML文件。
即执行MyFirstApplet之前必须编写MyFirstApplet.html。
然后使用浏览器或appletviewer.exe程序执行该.html文件。
格式如
AppletViewerMyFirstAplet.html。
如图1.4所示
图1.4appletview查看运行html文件
运行结果如图1.5所示:
图1.5
实验二Java基本语法
一、实验目的与要求:
1.了解Java的数据类型
2.掌握各种变量的声明方式
3.理解运算符的优先级
4.掌握java基本数据类型。
运算符与表达式、数组的使用方法
5.理解Java程序语法结构,掌握顺序结构、选择结构和循环结构语法的程序设计方法
二、实验内容:
1.编写程序,打印自己的学号、姓名及专业。
2.编写程序,打印下列九九乘法表。
1X1=1
1X2=22X2=4
1X3=32X3=63X3=9
1X4=42X4=83X4=124X4=16
1X5=52X5=103X5=154X5=205X5=25
1X6=62X6=123X6=184X6=245X6=306X6=36
1X7=72X7=143X7=214X7=285X7=356X7=427X7=49
1X8=82X8=163X8=244X8=325X8=406X8=487X8=568X8=64
1X9=92X9=183X9=274X9=365X9=456X9=547X9=638X9=729X9=81
3.编程输出以下图案:
要求:
*行数n小于40,在程序开头直接指定,不必从键盘输入。
4.编写程序,将1~500间能同时被2,5,7整除的数打印出来。
5.输出100!
的结果
简单实现:
输出大概值,直接用一个变量累乘
100!
≈9.3326215443944152681699238856267e+157
6.给定某人这一月的工资收入为salary,该变量在程序开始处赋值,不需要从键盘输入,计算他这一月应该缴纳的个人所得税。
个人所得税的计算方法请自己上网查询,按2011年9月执行的新标准。
例如:
salary=2000,个税=0;
salary=3500,个税=0;
salary=5000,个税=45;
salary=8000,个税=345;
salary=20000,个税=3120。
实验三面向对象的”对象”
一、实验目的与要求:
1理解类的定义;
2掌握对象的声明;
3学会使用构造函数初始化对象;
4使用类的数据和方法。
二、实验内容:
1.定义一个描述长方体的类Box,类中有三个整型的成员变量:
length、width和height,分别表示长方体的长、宽和高。
定义setInfo(int,int,int)方法设置这三个变量的值;定义volumn()方法求长方体的体积并返回整型结果;定义area()方法求长方体的表面积并返回整型结果;定义toString()方法把长方体的长、宽、高,以及长方体的体积和表面积转化为字符串并返回字符串。
编写Java应用程序,测试类Box,使用类中定义的各个方法,并将其结果输出。
2.定义一个圆形类Circle,类中有一个用来描述半径的double型成员变量r,定义setR(double)方法初始化半径;定义getArea()方法求圆形的面积并返回double类型结果;定义getPerimeter()方法求圆形的周长并返回double类型结果。
编写Java应用程序,使用Circle类创建两个对象,通过相应方法分别设置不同的半径值,计算各自的面积及周长并显示结果。
实验四JAVA数组
一.实验目的及要求
1.学习并实践Java数组编程方法。
2.学习并实践一维数组简单应用。
二.实验内容
1从键盘读入一组实数到一个一维double型数组X中(直接按回车结束),并且:
①求出数组X中数据的平均值。
②求出数组X中数据的最大值和最小值。
③对数组X中的数据按照从小到大的顺序排序。
④输入一个实数x,从数组X中查找出x的位置。
⑤输入一个整数i,从数组X中删除第i个结点。
⑥输入一个整数i和一个实数x,将x插入到数组X第i个结点之前。
提示:
①以回车作为结束标志的成组数据的输入
②排序、插入、删除等改变数组值的操作不应破坏原始数组(即存放输入数据的数组),针对Java数组本身的特点,下面给出处理该问题的一个算法供参考:
a.声明两个double数组的引用X和Y,并用常量为Y分配足够大的内存;
b.将数据先输入Y,输入过程中记录实际数据个数n(以回车作为输入结束的标志);
c.用实际数据个数n创建X,并调用arraycopy将Y中的前n个数据复制到X中;
d.排序前调用clone方法将X克隆到Y,排序则针对Y进行;
e.删除前为Y重新分配n-1个单元,删除过程中将X的n-1个数据转移到Y;
f.插入前为Y重新分配n+1个单元,插入过程中将X的n个数据及插入值转移到Y。
实验五Java类的封装性的设计与使用
一.实验目的及要求
1.熟悉Java类的封装性概念与作用;
2.掌握Java类构造方法的声明与方法的重载;
3.掌握类及其成员变量与成员方法的访问权限的设置;
二.实验内容
1.编写一个学校类School,其中包括成员变量schoolname(校名-String)、scoreLine(录取分数线-double类型)和构造方法(可完成对schoolname、scoreLine的初始值设置)以及获取schoolname、scoreLine值的getSchoolname方法getScoreLine方法。
2.编写一个学生类Student,它的成员变量有考生的name(姓名-String类型)、id(考号-int类型)、intgretResult(综合成绩-double类型)、sports(体育成绩-int类型)。
它有一个构造方法(可设置学生name和id的初始值)及可以修改学生name和id值的方法set(Stringname,intid)和分别设置学生的intgretResult(综合成绩)及sports(体育成绩)值的两个方法Set(doubleintgretResult)和Set(intsports)及获得学生intgretResult(综合成绩)及sports(体育成绩)的方法getIntgretResult()和getSports()。
3.编写一个录取类matriculate,它的一个方法用于判断学生是否符合录取条件。
其中录取条件为:
综合成绩在录取分数线之上,或体育成绩在90分以上并且综合成绩大于300分。
实验六静态变量、静态方法与包
一.实验目的及要求
1、熟练静态变量、静态方法、实例变量、实例方法的概念
2、掌握包的概念与应用。
二.实验内容
1.阅读下列程序,并按照要求完成后续功能。
classPoint
{
privateintx,y;
Point(intxValue,intyValue)
{
x=xValue;
y=yValue;
};
publicintGetX()
{
returnx;
}
publicintGetY()
{
returny;
}
publicvoidSetY(intvalue)
{
y=value;
}
publicvoidSetX(intvalue)
{
x=value;
}
}
classManagerpoint
{
staticintcount=0;
PointcreatePoint(intx,inty)
{
提示:
在此处加入代码,完成程序的输出要求
}
}
publicclassone{
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
ManagerpointmPoint=newManagerpoint();
for(inti=0;i<9;i++){
Pointp=mPoint.createPoint(i,20);
System.out.print("当前点的总数为:
"+Managerpoint.count);
System.out.println("当前点的x值为:
"+p.GetX());
}
}
}
在提示处加入代码,要求:
●除提示处代码,其他代码保持不变
●Main方法的执行结果为:
当前点的总数为:
1当前点的x值为:
0
当前点的总数为:
2当前点的x值为:
1
当前点的总数为:
3当前点的x值为:
2
当前点的总数为:
4当前点的x值为:
3
当前点的总数为:
5当前点的x值为:
4
当前点的总数为:
6当前点的x值为:
5
当前点的总数为:
7当前点的x值为:
6
当前点的总数为:
8当前点的x值为:
7
当前点的总数为:
9当前点的x值为:
8
2.改错。
理解静态方法可访问静态变量,但在静态方法中不能直接访问实例变量。
提示:
阴影处为需要修改的代码。
publicclassone
{
intx=8;
inty=9;
finalinti=10;
staticintgetY(){
returny;
}
staticintgetI(){
returni;
}
publicstaticvoidmain(String[]args)
{
System.out.println(one.x);
System.out.println(one.y);
System.out.println(one.i);
}
}
修改程序,输出结果应为
8
9
10
二、包
新建2个包:
一个是dao,一个是logic
在dao包中编写2个类,分别为point、circle,,具体设计要求可参照前述实验
在logic包中编写1个类,为Test,在Test的main方法中测试上述2个类,应能有相关测试代码。
实验七常用系统类的使用
一.实验目的及要求
1.掌握Math类的使用。
2.掌握String类和StringBuffer类的使用
3.掌握日期类的使用。
二.实验内容
1.编写运行下面代码,写出程序运行结果,理解Math类的使用和字符串转换成整数或浮点数的方法。
publicstaticvoidmain(String[]args){
System.out.println(Math.abs(-5.8));
System.out.println(Math.ceil(3.2));
System.out.println(Math.floor(3.8));
System.out.println(Math.round(3.8));
System.out.println(Math.round(3.2));
System.out.println(Math.min(3,2));
System.out.println(Math.max(Math.PI,4));
System.out.println("eis:
"+Math.E);
System.out.println("πis:
"+Math.PI);
System.out.println("16的1/4次幂:
"+Math.pow(16,0.25));
Stringnum1="121";
Stringnum2="232.2";
System.out.println("两字符串之和为"+num1+num2);
//掌握字符串转换成整数或浮点数的方法
doublesum=Integer.parseInt(num1)+Double.parseDouble(num2);
System.out.println("两数之和为"+sum);
}
2.编写一方法,获得一Email地址的服务器名,若Email地址的格式不正确,返回“Email的格式不正确”。
然后在主方法中测试使用。
说明:
Email的格式为:
用户名@邮件服务器,比如1234542@,1234542是用户名,@代表at的意思,为邮件服务器地址。
3.编写一方法,按格式“yyyy-MM-ddHH:
mm:
ss”获得当前时间。
实验八对象的进一步探讨--面向对象中的继承
一.实验目的及要求
1.理解继承的概念,了解其在程序设计中的作用;
2.熟悉类的继承定义方法,熟练地由系统类或者自定义的类派生出子类,并熟知子类对继承自父类的成员的访问性;
3.理解属性隐藏与方法覆盖(重写)的概念,并会调用父类中被隐藏的属性或被覆盖的方法;
4.理解在子类中调用父类的构造方法的原则与方法;
5.理解终结类、终结方法、抽象类、抽象方法的概念与特点;
6.理解组合和继承的区别,知道何时使用哪种方法。
二.实验内容
1.定义一个球类Ball,包含一个私有成员变量半径(doubler),两个公有成员方法:
设定半径值方法(voidsetR(doublex)、得到半径值方法(doublegetR())。
定义一个台球类Billiards,继承Ball类,包含一个私有成员变量颜色(Stringcolor),两个公有成员方法:
设定颜色方法(voidsetCol(Stringclo))、输出信息方法(voidshow()),其中show方法可以输出该台球的颜色和半径值。
定义一个公有类,测试前两个类。
2.定义材料类Material,包含:
保护的成员变量名称、单价(Stringname;doubleprice;)
为数据初始化赋值的构造方法;
公有的成员方法得到所有信息(publicStringtoString())。
定义木材类Wood,继承自材料类。
包含:
私有的成员变量颜色(Stringcol;)
为数据初始化赋值的构造方法;
覆盖公有的成员方法得到所有信息(publicStringtoString())。
定义公共类,测试上述两个类的使用。
思考:
程序中把木材类中toString()方法的public去掉会产生什么结果?
为什么?
程序中把材料类中toString()方法的public去掉会产生什么结果?
为什么?
思考题:
木材类中toString()方法的public去掉程序会出错,因为该方法由材料类继承而来,子类覆盖父类的方法时不能缩小其访问权限,public去掉就会变成包访问权限,此处不能去掉。
材料类中toString()方法的public去掉会产生同样的问题,因为toString方法不是材料类自定义的,是所有类的父类Object类提供的。
3.改写例7-8,给Shape类增加构造方法,能够对颜色进行初始化设置,思考两个子类的构造方法该如何修改才能使程序正常运行。
实验九深入多态
一.实验目的及要求
1.掌握final修饰的最终类与最终方法的定义、特点及使用
2.掌握abstract修饰的抽象类与抽象方法的定义、特点及使用
3.掌握interface接口的定义、特点及使用
4.进一步理解多态
二.实验内容
1.要使程序运行后出现如下结果,该如何修改程序代码。
去掉Person类前面的final,去掉Student类中show()方法前面的final。
2.求正方形的面积
a)创建一个接口IShape,接口中有一个抽象方法
publicdoublearea();
b)定义一个类square,且实现IShape接口。
square类有一个属性表示正方形的边长;构造方法初始化该边长。
c)定义一个主类,在此类中,创建square类的实例,求该正方形面积。
第1章基于Swing的图形界面编程
1.编写程序,实现如下效果:
2.用标签实现如下效果:
3.编写程序,完成以下界面的设计和显示:
10行,20列
20字符宽
400
320
4.完成下图所示的界面设计并显示出来:
5.把面板和布局管理配合在一起使用,实现显示如下界面:
运行后试着调整窗体的尺寸,观察窗
体内组件的变化。
第2章
可视化程序的事件处理
1.编写程序,能够在窗体内显示被点击按钮的信息。
运行效果图如下:
2.编写程序,实现如下界面,当用户在文本框中输入内容后,点击不同的按钮,能够把文本框中的内容粘贴到文本区中。
“重置”按钮实现将文本框和文本区中的内容清空。
界面上的文本区只能显示内容,不能让用户输入文本。
提示:
得到文本框中的文本、得到选中的文本、设置文本区中的文本、附加文本等,设置文本区不可用等,JTextField和JTextArea类均有相应方法实现。
3.模仿例题,实现在窗体内移动鼠标时,能够实时显示鼠标指针的坐标位置。
4.参考例题,编写程序,给界面上的文本框增加键盘事件处理,当在文本框中输入内容时,界面上不可编辑的文本区显示相应的按键信息。
实现原理:
在键盘事件接口的三个方法中均得到按键码,再根据按键码转换为按键信息,增加到文本区中显示。
e.getKeyText(e.getKeyCode())
提示:
最好使用带滚动窗格的文本区。
输出按键信息的同时还输出方法名称,以方便观察按键事件处理的先后顺序。
5.编写程序,实现使用键盘上的上下左右箭头控制界面上图片的移动。
移动到边界时从界面另一侧出现。
移动过程中显示另一个图片,停止时恢复原来的图片。
6.编写程序,在界面上放置若干按钮,面板使用网格布局,要求有15像素的水平垂直间隔。
使用弹出式菜单,点击菜单项时弹出颜色对话框,对相应的控件进行背景色设置。
提示:
需要给框架、按钮响应鼠标按下事件处理;
需要给菜单项响应点击事件处理;
弹出式菜单JPopupMenu。
创建时通常不给参数,大多由单击鼠标右键触发。
使用add()方法给弹出式菜单添加菜单项。
在mouseReleased()方法中通过e.isPopupTrigger()方法判断是否右键按下触发弹出式菜单。
使用publicvoidshow(Componentc,intx,inty)方法显示菜单。
如:
publicvoidmouseReleased(MouseEvente){
intx=e.getX();
inty=e.getY();
if(e.isPopupTrigger())
popup.show(this,x,y);
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 实验