我基本上需要允许用户创建多个对象并将它们存储在一个数组中。
如何以某种方式执行此操作,以便在创建新对象时不会覆盖先前的对象。
例如,当制作新的时,它将以下列形式出现:
UndergradTA student = new UndergradTA();
然后将其存储在包含其信息的数组中。
但是如果制作一个新的,它仍然会被命名为#34; student"。那不会覆盖以前的对象吗?
答案 0 :(得分:0)
如果将这些对象放在数组中,那么就不会丢失对它们的引用。 student = new UndergradTA()只是指派学生引用新对象。一旦数组已经引用此对象,那么您可以重新分配学生。
答案 1 :(得分:0)
编码:
Object myVar = new Object();
您声明myVar将是对象的新实例的引用。如果您再执行第二项任务:
myVar = new Object();
然后原始参考将丢失。
但是,如果你有一个数组:
Object myArray[] = new Object[5];
myArray[0] = new Object();
myArray[1] = new Object();
...
然后引用不会丢失。它们可以通过索引到数组中访问。
答案 2 :(得分:0)
只要你引用了你的对象,它就不会被垃圾收集。以下示例为您提供了这个想法。
public class Main {
public static void main(String[] args) {
List<Foo> myList = new ArrayList<Foo>();
Random random = new Random();
for (int i = 0; i < 10; i++) {
Foo foo = new Foo(random.nextInt());
myList.add(foo);
}
for (Foo foo : myList ) {
System.out.println(foo);
}
}
}
class Foo {
private int val;
Foo(int val ){
this.val = val;
}
public String toString() {
return "foo.val = " + val;
}
}