Java实验指导书
更新时间:2023-10-17 13:05:01 阅读量: 综合文库 文档下载
Java实验指导书
目 录
实验1 Java编程基础 ................................................................................................... 1 实验2 面向对象基础................................................................................................... 5 实验3 Java常用类库 ................................................................................................ 12 实验4 集合与泛型..................................................................................................... 20 实验5 多线程............................................................................................................. 24 实验6 Java I/O ........................................................................................................... 29 实验7 图形界面设计................................................................................................. 33 实验8 网络编程......................................................................................................... 39
2
实验1 Java编程基础
一、实验目的
1、熟悉MyEclipse集成开发环境; 2、掌握定义变量和使用运算符;
3、掌握条件、循环语句的使用,能分析循环的执行过程; 4、掌握一维数组的定义和使用。
二、实验环境
MyEclipse/Eclipse
三、实验内容
(一)基本指导
1、题目:利用级数和求π,直到最后一项的绝对值小于10-6为止。求π的公式为:
π/4 = 1? 1/3 + 1/5 ? 1/7 + 1/9 ? ···
图E1-1 程序及运行结果
操作步骤:
(1)启动MyEclipse,新建一个Java工程:选择菜单File->New->Java Project,就会弹出创建Java 项目的界面。在创建Java 项目的界面中,Project name的文本框用来输入新创建Java 项目的项目名称,这里我们输入“Experiment1”。单击Finish按钮完成工程的创建。
(2)在Package Explorer窗口中单击工程Experiment1前面的“+”号,在“src”上单击鼠标右键,在弹出菜单中选择New->Class,就会出现创建Java 类界面。在创建Java类界面中,Name表示类名,这里我们输入“CalculatePI”,选中“public static void main(String[] args)”复选框,单击Finish按钮完成类的创建。这样就创建了一个名称为CalculatePI的主类(包含main方法的类)。
1
(3)在main方法中输入程序并点击工具栏运行按钮,结果如图E1-1所示。 2、题目:猜数字游戏
随机产生一个1-100之间的数(方法:(int)(Math.random()*100)+1),输入你的猜测试数据,然后程序比较输出提示“大了”或“小了”,直到猜中为止。 操作步骤:
(1)启动MyEclipse,在Package Explorer窗口中单击工程Experiment1前面的“+”号,在“src”上单击鼠标右键,在弹出菜单中选择New->Class,就会出现创建Java 类界面。在Name文本框中输入“GuessingNumber”,选中“public static void main(String[] args)”复选框,单击Finish按钮完成类的创建。这样就创建了一个名称为GuessingNumber的主类。
(2)在main方法中输入程序。这里使用了Scanner类,由于没有引入它,所以Scanner下出现了波浪线,表示出现了错误。这时可以把鼠标指针放到带波浪线的错误处,会出现改正提示,我们用鼠标点击第一个改正提示,引入Scanner类,如图E1-2所示。没有错误了,点击工具栏运行按钮,结果如图E1-3所示。
图E1-2 改正提示
图E1-3 程序及运行结果
3、题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。
操作步骤:
(1)启动MyEclipse,在Package Explorer窗口中单击工程Experiment1前面的“+”号,在“src”上单击鼠标右键,在弹出菜单中选择New->Class,就会出现创建Java 类界
2
面,在Name文本框中输入“Encrypt”,选中“public static void main(String[] args)”复选框,单击Finish按钮完成类的创建。这样就创建了一个名称为Encrypt的主类。
(2)在Encrypt类的main方法中输入代码如下:
import java.util.Scanner; public class Encrypt { }
public static void main(String[] args) { }
Scanner s = new Scanner(System.in); int num = 0, temp; do {
System.out.print(\请输入一个4位正整数:\); num = s.nextInt();
} while (num < 1000 || num > 9999); int a[] = new int[4];
a[0] = num / 1000; // 取千位的数字 a[1] = (num / 100) % 10; // 取百位的数字 a[2] = (num / 10) % 10; // 取十位的数字 a[3] = num % 10; // 取个位的数字 for (int j = 0; j < 4; j++) { }
for (int j = 0; j <= 1; j++) { }
System.out.print(\加密后的数字为:\); for (int j = 0; j < 4; j++)
System.out.print(a[j]); temp = a[j]; a[j] = a[3 - j]; a[3 - j] = temp; a[j] += 5; a[j] %= 10;
(3)点击工具栏运行按钮,运行结果如图E1-4所示。
图E1-4 运行结果
(二)实验练习题
1、使用循环语句输出如下图案:
* *** ***** *******
3
}
public String phoneType() { }
return(\这是移动电话\);
(4)在Package Explorer窗口中工程Experiment2下的“src”下的“phone”上单击鼠标右键,在弹出菜单中选择New->Class,就会出现创建Java 类界面,在Name文本框中输入“Fixedphone”,单击Superclass后的“Browse...”按钮,在弹出的窗口中的“Choose a type:”文本框中输入“Phone”,单击OK按钮返回,单击Finish按钮完成类的创建。这样就创建了一个名称为Fixedphone的类。输入如下代码:
package phone;
public class Fixedphone extends Phone {
public Fixedphone() { }
public Fixedphone(String phoneCode) { } /*
* 重写Phone 父类中的方法 */ @Override }
public void call(){ // 打电话 }
System.out.println(\用固定电话打电话,电话号码:\+getPhoneCode());
super(phoneCode); // 调用父类的构造方法 super();
@Override
public String phoneType() { }
return(\这是固定电话\);
(5)在Package Explorer窗口中工程Experiment2下的“src”下的“phone”上单击鼠标右键,在弹出菜单中选择New->Class,就会出现创建Java 类界面,在Name文本框中输入“Cordlessphone”,单击Superclass后的“Browse...”按钮,在弹出的窗口中的“Choose a type:”文本框中输入“Fixedphone”,单击OK按钮返回,再单击Interfaces后的“Add...”按钮,在弹出的窗口中的“Choose interfaces:”文本框中输入“Moveable”,单击OK按钮返回,单击Finish按钮完成类的创建。这样就创建了一个名称为Cordlessphone的类。输入如下代码:
package phone;
public class Cordlessphone extends Fixedphone implements Moveable{
public Cordlessphone() { }
public Cordlessphone(String phoneCode) { }
super(phoneCode);
super();
9
/*
* 重写父类Fixedphone 中的方法 */ @Override
}
public void call(){ // 打电话 }
@Override
public String phoneType() { } /*
* 实现Moveable 接口中的方法 */ @Override
public void way() { }
System.out.println(\这是可移动的Cordlessphone\); return(\这是无绳电话\);
System.out.println(\用无绳电话打电话,电话号码:\+getPhoneCode());
(6)在Package Explorer窗口中工程Experiment2下的“src”下的“phone”上单击鼠标右键,在弹出菜单中选择New->Class,就会出现创建Java 类界面,在Name文本框中输入“TestPhone”,选中“public static void main(String[] args)”复选框,单击Finish按钮完成类的创建。这样就创建了一个名称为TestPhone的主类。输入如下代码:
package phone;
public class TestPhone { }
public static void main(String[] args) { }
Phone[] phones = new Phone[3];
phones[0] = new Mobilephone(\); phones[1] = new Fixedphone(\); phones[2] = new Cordlessphone(\); for (int i = 0; i < phones.length; i++) { }
System.out.println(\); Moveable[] moveables = new Moveable[2];
moveables[0] = new Mobilephone(\); moveables[1] = new Cordlessphone(\); for (int i = 0; i < moveables.length; i++) { }
moveables[i].way();
System.out.println(phones[i].phoneType()); phones[i].call();
10
(7)点击工具栏运行按钮,运行结果如图E2-2所示。
图E2-2 运行结果
(二)实验练习题
1、定义一个图书类,其属性有书名、编号(利用静态属性实现自动编号)、书价和静态属性图书总册数,在构造方法中利用此静态属性为对象的编号赋值。类中有无参和带2个参数(书名、书价)的构造方法、获取和设置属性的方法及显示属性的方法。并编写程序进行测试。
2、模拟一个军队作战场景,军队里面有各种兵种,如骑兵、步兵、炮兵等等,每种兵的攻击敌人方式不一样,请建立3种不同的兵种,每种3个对象,然后建立一个军官对象,军官也会上场去攻击敌人,但是军官还有一种行为,就是发号,军官发号了,所有的兵,无论什么兵种都去战场攻击敌人。程序运行效果就是一个军官开始发号,然后所有的士兵包括军官都去打仗,显示每个人攻击敌人的方式。
11
实验3 Java常用类库
一、实验目的
1、掌握Random类、时间日期操作类的使用; 2、掌握使用Timer类和TimerTask类。
二、实验环境
MyEclipse/Eclipse
三、实验内容
(一)基本指导
1、题目:倒计时程序,从10秒倒计时到1秒,然后程序结束。 操作步骤:
(1)启动MyEclipse,新建一个Java工程:选择菜单File->New->Java Project,就会弹出创建Java 项目的界面。在创建Java 项目的界面中,Project name的文本框用来输入新创建Java 项目的项目名称,这里我们输入“Experiment3”。单击Finish按钮完成工程的创建。
(2)在Package Explorer窗口中单击工程Experiment3前面的“+”号,在“src”上单击鼠标右键,在弹出菜单中选择New->Class,就会出现创建Java 类界面,在Package文本框中输入“countDown ”,在Name文本框中输入“MyTimerTask”,单击Superclass后的“Browse...”按钮,在弹出的窗口中的“Choose a type:”文本框中输入“TimerTask”,单击OK按钮返回,单击Finish按钮完成类的创建。这样就创建了一个名称为MyTimerTask的类。
(3)在MyTimerTask类中输入代码如下:
import java.util.Timer; import java.util.TimerTask;
public class MyTimerTask extends TimerTask { }
Timer myTimer; int time=10;
public MyTimerTask(Timer myTimer) { }
@Override
public void run() { }
System.out.println(\倒计时:\+time--); if(time==0){ }
myTimer.cancel();//结束定时任务 this.myTimer = myTimer;
(4)在Package Explorer窗口中工程Experiment3的“src”下的“countDown”上单击鼠标右键,在弹出菜单中选择New->Class,就会出现创建Java 类界面,在Name文本
12
框中输入“CountDownDemo”,选中“public static void main(String[] args)”复选框,单击Finish按钮完成类的创建。这样就创建了一个名称为CountDownDemo的主类。
(5)在CountDownDemo类的main方法中输入代码如下:
import java.util.Timer; public class CountDownDemo { }
public static void main(String args[]) { }
Timer myTimer = new Timer();
MyTimerTask myTask = new MyTimerTask(myTimer); //下面设置任务一秒后开始执行,每1秒钟运行一次 myTimer.schedule(myTask, 1000, 1000);
(6)点击工具栏运行按钮,运行结果如图E3-1所示。
图E3-1 运行结果
2、题目:关于日期的各种计算。 操作步骤:
(1)在Package Explorer窗口中的工程Experiment3的“src”上单击鼠标右键,在弹出菜单中选择New->Class,就会出现创建Java 类界面,在Package文本框中输入“dateTest”,在Name文本框中输入“DateUtil”,单击Finish按钮完成类的创建。这样就创建了一个名称为DateUtil的类。
(2)在DateUtil类中输入代码如下:
package DateTest;
import java.text.ParsePosition; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class DateUtil {
// 获取当前时间
public String getNowTime() { }
public String getNowTime2() {
SimpleDateFormat sDateFormat = new SimpleDateFormat(
\);
Date now = new Date(System.currentTimeMillis());
13
SimpleDateFormat sDateFormat = new SimpleDateFormat(\); Date now = new Date();
return sDateFormat.format(now);
(5)点击工具栏运行按钮,运行结果如图E3-2所示。
图E3-2 运行结果
(二)实验练习题
1、编写应用程序,程序运行后随机生成100组36选7的数组(使用Random类),并统计1~36中的各个数字出现的次数。
2、编写程序,用户从输入对话框(JOptionPane.showInputDialog( )方法)输入了两个日期,程序将判断两个日期的大小关系,以及两个日期之间的间隔天数。
3、使用Timer类和TimerTask类每秒输出一次系统时间,每5秒输出一个提示信息,输出10次提示信息后程序结束。
19
实验4 集合与泛型
一、实验目的
掌握集合类与泛型的使用。
二、实验环境
MyEclipse/Eclipse
三、实验内容
(一)基本指导
1、题目:输入一行字符,分别统计出字符串中有多少种字符以及每种字符的个数。 操作步骤:
(1)启动MyEclipse,新建一个Java工程:选择菜单File->New->Java Project,就会弹出创建Java 项目的界面。在创建Java 项目的界面中,在Project name的文本框中输入“Experiment4”。单击Finish按钮完成工程的创建。
(2)在Package Explorer窗口中单击工程Experiment4前面的“+”号,在“src”上单击鼠标右键,在弹出菜单中选择New->Class,就会出现创建Java 类界面,在Package文本框中输入“statisticAndCount”,在Name文本框中输入“StatisticAndCount”,选中“public static void main(String[] args)”复选框,单击Finish按钮完成类的创建。这样就创建了一个名称为StatisticAndCount的主类。
(3)在StatisticAndCount类的main方法中输入代码如下:
package statisticAndCount; import java.util.HashMap; import java.util.Map; import java.util.Scanner;
public class StatisticAndCount {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); System.out.println(\请输入一行字符: \); String s = sc.nextLine();
int count = 0; Character ch=null;
//charMap是存储字符及其个数的集合对象
Map
if (charMap.get(ch) == null) { count = 0; } else {
count = (Integer)charMap.get(ch); }
20
}
charMap.put(ch, count + 1); }
System.out.println(charMap); }
(4)点击工具栏运行按钮,运行结果如图E4-1所示。
图E4-1 运行结果
2、题目:使用Properties类记录程序窗口上次关闭时的大小和位置,下次显示窗口时按照上次关闭时的大小和位置显示。
操作步骤:
(1)在Package Explorer窗口中工程Experiment4的“src”上单击鼠标右键,在弹出菜单中选择New->Class命令,就会出现创建Java 类界面,在Package文本框中输入“windowTest”,在Name文本框中输入“MyFrame”,单击Finish按钮完成类的创建。这样就创建了一个名称为MyFrame的类。
(2)在MyFrame类中输入代码如下:
import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.Properties; import javax.swing.JFrame;
class MyFrame extends JFrame {//JFrame类是系统窗口类
public MyFrame() {
setSize(Integer.parseInt(property.getProperty(\)),
Integer.parseInt(property.getProperty(\)));
21
//根据Properties对象的\和\设置窗口位置 addWindowListener(new MyWindowAdapter());//设置窗口事件处理 try {
Properties property = new Properties(); //加载属性文件内容到Properties对象
property.load(new FileInputStream(\)); //根据Properties对象的\和\设置窗口大小
}
setLocation(Integer.parseInt(property.getProperty(\)), }
Integer.parseInt(property.getProperty(\)));
} catch (FileNotFoundException e) { }
// 发生异常说明程序第一次运行,mysave.properties文件还未创建 setSize(600, 200);//设置初始窗口大小,宽600像素,高200像素 System.out.println(\ + e);
} catch (IOException e) {
private class MyWindowAdapter extends WindowAdapter {//事件处理内部类 }
public void windowClosing(WindowEvent wevent) {//窗口关闭事件处理 }
try { }
Properties property = new Properties();
//JFrame类的getHeight()方法、getWidth()方法返回窗口高度和宽度 //JFrame类的getX()方法和getY()方法返回窗口左上角的X和Y坐标 property.setProperty(\,
String.valueOf(getHeight()));
property.setProperty(\, property.setProperty(\,
String.valueOf(getX()));
property.setProperty(\, String.valueOf(getY())); property.store(new FileOutputStream(\),
\);
String.valueOf(getWidth()));
System.exit(0);//结束程序
System.out.println(\ + e);
} catch (Exception e) {
(3)在Package Explorer窗口中工程Experiment4的“src”下的“windowTest”上单
击鼠标右键,在弹出菜单中选择New->Class,就会出现创建Java 类界面,在Name文本框中输入“PropertiesTest”,选中“public static void main(String[] args)”复选框,单击Finish按钮完成类的创建。这样就创建了一个名称为PropertiesTest的主类。
(4)在PropertiesTest类的main方法中输入代码如下:
public class PropertiesTest {
public static void main(String[] args) { }
MyFrame frame = new MyFrame(); // 创建程序窗口
frame.setTitle(\会记住上次关闭时的大小和位置的窗口\);//设置窗口标题 frame.setVisible(true);// 显示窗口
22
}
(5)点击工具栏运行按钮,运行时会弹出一个窗口,如图E4-2所示。改变窗口的大小和位置,点击窗口关闭按钮关闭程序后,再启动程序,会发现程序窗口按照上次关闭时的大小和位置显示。
图E4-2 运行窗口
(二)实验练习题
1、定义一个学生类Student,该类定义了3个属性:学号number(String类型)、姓名name(String类型)和成绩mark(int型),类中定义一个构造方法,用来初始化类中的3个属性。为了方便显示,该类覆盖了父类Object的toString()方法,返回以下格式的字符串:\学号:\+number+\ 姓名:\+name+\ 成绩:\+mark。在main方法中创建ArrayList对象list,并添加5个Student类对象,并将list的所有元素分行显示;然后用自定义的比较器将list的元素按学号升序排序后输出。
2、编写程序,自定义一个泛型类,类型参数是数字类(Number)的子类,类中提供添加数据、返回最大值、返回最小值、返回平均值、递增排序、递减排序方法,并编写测试类进行测试。
23
正在阅读:
Java实验指导书10-17
水泥砂浆搅拌桩施工方案(试桩)08-21
春节期间工作总结-春节期间工作总结09-08
Oracle课堂笔记01-10
县规划局城乡规划编制工作开展实施情况总结08-04
经典的美文摘抄03-27
政治学基础讲义(北大王浦劬第二版)03-08
收藏试卷下载试卷试卷分析显示答案05-16
- 计算机试题
- 【2012天津卷高考满分作文】鱼心人不知
- 教育心理学历年真题及答案--浙江教师资格考试
- 20180327-第六届“中金所杯”全国大学生金融知识大赛参考题库
- 洪林兴达煤矿2018年度水情水害预测预报
- 基本要道讲义
- 机电设备安装试运行异常现象分析与对策
- 《有机化学》复习资料-李月明
- 非常可乐非常MC2--非常可乐广告策划提案 - 图文
- 2011中考数学真题解析4 - 科学记数法(含答案)
- 企业人力资源管理师三级07- 09年真题及答案
- 基于单片机的光控自动窗帘控制系统设计说明书1 - 图文
- 20160802神华九江输煤皮带机安装方案001
- (共53套)新人教版一生物必修2(全册)教案汇总 word打印版
- 2014行政管理学总复习
- 中国银监会关于加强地方政府融资平台贷款风险监管的指导意见
- 民宿酒店核心竞争与研究
- 游园活动谜语大全2012
- 河南省天一大联考2016届高三英语5月阶段性测试试题(六)(A卷)
- 小型超市管理系统毕业论文详细设计4
- 指导书
- 实验
- Java
- 氧气习题(打印) -
- 日立挖掘机配置的五十铃发动机气门间隙调整
- 纪检监察知识讲座
- 英语基础班教学案6
- 盐霉素项目可行性研究报告 - 图文
- 内蒙古商贸职业学院信息技术系-师资队伍 - 图文
- 登封市向阳煤业防隔水煤柱设计doc
- 内科护理学循环系统 测试题
- 企业核心员工流失的影响因素及对策研究
- 《终身做科学实验的爱迪生》
- 日常养颜抗衰老大全
- 零指数幂和负整数指数幂导学案
- 冷冻库安全注意事项培训
- 2018届九年级政治全册第1单元在社会生活中承担责任第一课公平正义第2框为正义高歌教案鲁教版
- 仿真实验二:MIMO系统信道容量仿真比较
- A股上市公司分拆到不同交易市场上市的可行性对比分析
- 夏书章第三版行政管理学笔记
- 舵机 - 图文
- 特殊贡献教师事迹材料
- 2012年会计从业资格考试-财经法规(判断题100题及答案)