南京邮电大学java实验报告语言特性

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告
班级:姓名:学号:
课程名称Java程序设计实验项目Java语言特性
实验项目类型验







指导教师吴伟敏成绩√
一、实验目的
1.了解线程的基本概念;
2.掌握异常以及错误处理的方式;
3.掌握Java程序调用I/O以及界面设计的方法;
二、实验步骤
1.假设某家银行,它可接受顾客的汇款,每做一次汇款,便可计算出汇款的
总额。

现有两个顾客,每人都分3次,每次100元将钱到入。

试编写一个程序,模拟实际作业。

测试以下程序,说出此程序的运行机制,体会多线程程序设计以及异常处理的方法。

程序如下:
class CBank{
private static int sum=0;
public static void add(int n){
int tmp=sum;
tmp=tmp+n; // 累加汇款总额
try{
Thread.sleep((int)(10000*Math.random()));
}
catch(InterruptedException e){}
sum=tmp;
System.out.println("sum= "+sum);
}
}
class CCustomer extends Thread {// CCustomer类,继承Thread类
public void run(){ // run() method
for(int i=1;i<=3;i++)
CBank.add(100); // 将100元分三次汇入
}
}
public class Ex3_1{
public static void main(String args[]) {
CCustomer c1=new CCustomer();
CCustomer c2=new CCustomer();
c1.start();
c2.start();
}
}
基本要求运行程序5次,观察每次运行结果是否相同。

运行结果有时相同,有时不同,5次运行结果如下图所示:
思考问题运行结果每次是否相同,运行时间是否相同,为什么?
程序运行结果有时相同,有时不同,结果并不确定,运行时间也是不相同的,因为存钱的方法未同步,导致两位顾客的存钱行为是分步进行的,相当于各自存各自的
钱,两个sum,最终两位顾客的存钱结束,会有各自的两个sum,都为300。

①要使程序运行结果每次相同,应该怎样修改程序?
把存钱方法add用synchronized封锁,两个线程用这个方法时,一个线程使用这个方法,另一个线程只能等待,两个线程用同一个方法,则sum只能递增,最终结果如下图所示:
②程序中为什么要使用异常处理?
在Java中,线程方法的异常(无论是checked还是unchecked exception),都应该在线程代码边界之内(run方法内)进行try catch并处理掉.
2 录入并测试和完善以下程序,体会接口的用法。

interface Sittable{
void sit();
}
interface Lie{
void sleep();
}
interface HealthCare{
void massage();
}
class Chair implements Sittable{
public void sit(){
System.out.println("It is sittable!");
};
}
class Sofa extends Chair implements Lie,HealthCare{ public void sleep(){
System.out.println("It is sleep!");
};
public void massage(){
System.out.println("give a message!");
};
public static void main(String[] args) {
Sofa cottonSofa=new Sofa();
System.out.println(" Sofa is ok!");
}
}
[基本要求]
运行程序并观察运行结果。

[思考问题]
试述程序中每条语句的作用。

三、实验过程原始记录(数据、图表、计算等)
四、实验结果及分析
在一个程序中,相同的程序段可能会多次重复出现,为了减少代码量和出错概率,在程序设计中,一般将这些重复出现的代码段单独提炼出来,写成子程序形式,以供多次调用。

这类子程序称作方法,通过方法,不仅可以缩短程序,而且可以提高程序的可维护性,方便程序员把大型的、复杂的问题分解成若干较小的子问题,从而实现分而治之。

数组是Java语言以及其他编程语言的一种重要的数据结构当处理一系列的同类数据时,利用数组来操作会非常方便。

签名
备注:
1、此表表头必须按此格式制作。

2、表头以下的栏目和内容,各系部可根据实验课程的具体需要和要求确定,表中所列内容仅供参考。

该栏可以根据需要加页。

3、一门课程有多个实验项目的,应每一个实验项目一份。

相关文档
最新文档