循环中的对象创建

时间:2011-03-09 18:40:03

标签: java constructor

我有一个名为Node的类,如下所示

Public class T{
int value;

public T(int value)
{
    This.value=value;   
}

}

我有另一个名为M的课程:

Public class M{

 ...//some codes here


 private ArrayList<T> List;

for(int i=0;i<10;i++)
{
 (I)   T name =new T(i);
List.Add(name);
}

我的问题是线(I)是否正确?我可以制作这样一个类的不同对象,因为他们的名字都是“名字”吗?如果不是,最好的解决办法是什么?

2 个答案:

答案 0 :(得分:4)

此代码有效,是的:

for (int i=0;i<10;i++)
{
    T name = new T(i);
}

这不会创建几个“称为”name的对象;它创建了几个对象,并将每个变量分配给名为name变量。这个变量在循环体的末尾有效地消失了,所以当你再次进入循环体时,你有另一个变量叫同一个东西的事实不是问题:)

了解变量,引用和对象之间的差异以及对象没有名称的概念非常重要;它不知道在任何一个时间点有什么变量可以引用它。

答案 1 :(得分:0)

目前尚不清楚你的问题是什么。是的,一个名为name的变量,你用新的实例T覆盖它。你可能想要保存名为name的变量。这完全取决于你想做什么。