黑马程序员技术交流社区

标题: 在类中创建对象和在方法中创建对象的问题 [打印本页]

作者: 自己玩    时间: 2011-12-15 22:03
标题: 在类中创建对象和在方法中创建对象的问题
本帖最后由 自己玩 于 2011-12-17 20:21 编辑

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);  每次都创建一个对象

所以结果肯定不一样的
作者: songxingchao    时间: 2011-12-15 22:40
/*问题1*/b.add(100);  每次sum 都+100, 加3次=300

new bank().add(100)  创建3次没有引用的新bank对象, 每个对象的sum都是100




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2