【发布时间】:2020-12-09 11:30:18
【问题描述】:
我正在开发一个根据面积比较形状的应用程序。它起作用了,我只是想让输出更好。
我有一个 Shapes 超类和两个形状子类 Rectangle 和 Circle。他们都有 toString() 方法来输出他们的区域。
@Override
public String toString() {
return " has an area of : " + getArea();
}
我制作了两个圆,分别称为圆 1 和圆 2。与矩形类似。将它们存储在一个名为 shapeList 的 ArrayList 中 我正在使用以下代码遍历数组并输出 toString()。
for (Shapes s:shapesList) {
System.out.println(s.toString());
}
有没有办法让我的输出打印“矩形 1 有一个区域圆 1 有一个区域等等等等。 过去我在我的对象中设置了名称,所以我可以在我的循环中使用 s.getName() 。但我想知道是否有另一种方法可以在我的输出中获取对象名称
希望我已经解释清楚了,第一次发帖!
【问题讨论】:
-
当您说“对象名称”时,您是指您在代码中定义的变量名称吗?如果是,那么您应该考虑这些不是唯一标识符,并且您的对象之一可以被多个变量名引用。例如:
Object o1 = new Object(); Object o2 = o1o1 和o2都指向同一个对象。因此,如果您想打印对象名称,它应该如何决定应该使用哪一个? -
简短的版本是:对象没有名称,除非您明确地给它们一个字段来存储该名称。将变量名视为编译器了解您所引用内容的工具,但它们在运行时基本上不再存在。
-
@JoachimSauer 谢谢,一旦我读到这篇文章,我就想起了一次旧讲座的记忆。我现在明白了
-
@OHGODSPIDERS |感谢您的帮助,我从旧讲座中就知道这一点。谢谢提醒!
标签: java object arraylist output