本帖最后由 杨志 于 2012-7-28 10:57 编辑
这个问题在于重复定义了t;
每次循环开始你都会去执行
Test t ;
那么就等于是定义了10次。
- Person t = null;
- for (int i = 0; i < 10; i++)
- t = new Person("tt");
复制代码 这样就不会有问题了。这样的话就是说每次去建立对象都赋值给t引用。那么t最后表示的对象将是最后new的一个对象。
建议要new 10个对象的话,就用数组做,或者用集合!这样的建立方式,最后只会有一个对象,而其他的都会被回收掉!
其实当你第一次新建对象的时候。栈区就已经申明了一个t的引用用来保存一个Person对象。
那么在你后面的循环当中,又来申明t引用。这样肯定是不对的。
就好比下面的代码。重复定义两个int型的a变量。这样也不行的。因为第一个定义的时候栈区就已经存在了。
但是这样却是可以的。这样只是去修改栈区的值。而不是又去申明一个a。 |