问题 问答题

请完成下列Java程序:假设某家银行,它可接受顾客的汇款,每做一次汇款,便可计算出汇款的总额。现有两个顾客,每人都分3次,每次将50元钱汇入。编写一个程序,模拟实际作业。要求实现2个类,一个是银行类,一个是顾客类。 注意:请勿改动main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。 程序运行结果如下: Customer2 : sum=50 Customer1 : sum=50 Customer1 : sum=100 Customer2 : sum=100 Customer1 : sum=150 Customer2 : sum=150 class bank{ private static int sum=0; public static void add(int n,char c){ int tmp=sum; ______; try { Thread. sleep( ((int) (2000-500+1)*(Math. random( ) ) ) )+500) } catch ( InterruptedException e) { } sum=tmp; System. out. println("Customer"+c+":sum="+sum) ; } } class customer extends Thread{ static char flag4_1 =’1’ public void run(){ char myflag4_1, synchronized(this) {myflag4_1= flag4_1++; }for (int i=1;i<=3;i++)______; } } public class ex4_1{ public static void main(String args[]) { customer c1 = new customer( ); customer c2 = new customer( ) c1. start() c2. start( ) } }

答案

参考答案:

解析:tmp=tmp+nbank.add(50,myflag4_1) 本题主要考查线程的同步和设计简单的类来模拟现实问题的简单应用。解题关键是熟练掌握面向对象的编程思想,熟悉Java线程的同步编程,会使用Math类的随机数方法。本题中,第1个空,银行类对客户的存款进行累加;第2个空,在客户类中,通过使用银行类的对象 bank调用add()方法实现3次汇款的操作,将钱数和客户标志作为参数传递给add()方法。

选择题
单项选择题