在方法中重命名对象名称

时间:2018-03-12 10:48:57

标签: java object arraylist naming

我有一段代码

list.add(new Person())

由于Person对象缺少它的命名部分

Person p = new Person()

此人物对象分配给哪个名称?

知道对象的名称是否重要? 如果将此对象的方法添加到没有名称的ArrayList中,我将如何访问该对象?

编辑:name == reference。我知道物品没有名字

6 个答案:

答案 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内存堆中,并且没有名称这样的东西。它可以由可以是列表或单个元素的变量引用。对于列表,您可以通过索引访问列表元素来引用该对象。