class bank
{
private int sum;
public void add(int a)
{
sum+=a;
System.out.println("sum= "+sum);
}
}
class cun implements Runnable
{ /*问题1*/private bank b=new bank();
public void run()
{
for (int x=0;x<3 ;x++ )
{ /*问题1*/b.add(100);
/*问题2*/new bank().add(100);
}
}
}
class bankdemo
{
public static void main(String[] agrs)
{ cun c=new cun();
Thread t1=new Thread(c);
Thread t2=new Thread(c);
t1.start();
t2.start();
}
}
如题,将上面/*问题1*/后面的代码和/*问题2*/后面的代码互换得到的结果不同,不知道为什么。
那位高手帮忙解答,谢谢!作者: 李明 时间: 2011-12-15 22:34
/*问题1*/b.add(100); 创建的对象b唯一。
/*问题2*/new bank().add(100); 每次都创建一个对象