我有一个名为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)是否正确?我可以制作这样一个类的不同对象,因为他们的名字都是“名字”吗?如果不是,最好的解决办法是什么?
答案 0 :(得分:4)
此代码有效,是的:
for (int i=0;i<10;i++)
{
T name = new T(i);
}
这不会创建几个“称为”name
的对象;它创建了几个对象,并将每个变量分配给名为name
的变量。这个变量在循环体的末尾有效地消失了,所以当你再次进入循环体时,你有另一个变量叫同一个东西的事实不是问题:)
了解变量,引用和对象之间的差异以及对象没有名称的概念非常重要;它不知道在任何一个时间点有什么变量可以引用它。
答案 1 :(得分:0)
目前尚不清楚你的问题是什么。是的,一个名为name
的变量,你用新的实例T覆盖它。你可能想要保存名为name的变量。这完全取决于你想做什么。