我有一段代码
list.add(new Person())
由于Person对象缺少它的命名部分
Person p = new Person()
此人物对象分配给哪个名称?
知道对象的名称是否重要? 如果将此对象的方法添加到没有名称的ArrayList中,我将如何访问该对象?
编辑:name == reference。我知道物品没有名字
答案 0 :(得分:4)
p
不是“对象的名称”。 p
是一个恰好包含对Person
对象的引用的变量。对象没有名称。
如果您跳过声明p
变量并将Person
对象直接添加到ArrayList
,则ArrayList
仍会保留对该对象的引用,因此它不会无论您使用list.add(new Person())
还是list.add(p)
。
无论哪种方式,您都可以使用Person
检索对list.get(index)
的引用,然后执行您希望的任何方法。
答案 1 :(得分:2)
我认为,Person-Object的名称无关紧要。
您只需使用list.get(int number)
访问它即可。
这将使您能够参考该位置的元素。
希望我能正确理解你的问题,这对你有帮助。
答案 2 :(得分:2)
该名称仅供开发人员使用以供参考,在运行时实际上并不需要。 要访问您使用的对象:
List<Person> list = new ArrayList<Person>(); // Create the list
list.add(new Person()); // Add the person to the list
list.get(0); // Returns the person you added
如果您想从列表中获取特定人员,我建议使用HashMap并将其名称存储为密钥。
答案 3 :(得分:1)
我认为您可能会混淆对象的创建,并为该对象分配引用。在您的示例中,p是对您创建的对象Person的引用。您尚未将该对象命名为p,但是对对象具有名为p的引用。
要从list.add(new Person())创建对象对象的引用,您只需执行
Person p = list.get(0)
答案 4 :(得分:0)
您可以从List中的索引访问该对象。
答案 5 :(得分:0)
对象存在于JVM内存堆中,并且没有名称这样的东西。它可以由可以是列表或单个元素的变量引用。对于列表,您可以通过索引访问列表元素来引用该对象。