如何在一条语句中打印多个类实例?爪哇

时间:2018-09-23 03:33:01

标签: java printf deep-copy

fetchData() {
  return axios.get()
           .then(/*...*/)
           .catch(/*...*/);
}

问题4- 写一个叫做Point的类。该类具有两个实例字段:x和y,它们都是double类型。 编写两个构造函数:一个使用点的x和y值,另一个使用第一个点的值创建具有完全相同的x和y值的第二个Point对象。编写一个Demo类来构建以下四个Point对象。

第1点:(x = 5,y = 10)

点2:(x = 7,x = 12)。该点需要使用复制点1的深度复制构造函数然后仅使用一个setter方法来构建。

第3点:(x = 10,y = 15)。需要使用将点2作为原始点的深度复制方法来构建此点,然后使用两种设置方法来更改所需的x和y值。

第4点:此点需要使用浅拷贝方法构建,并且必须使用第3点作为浅拷贝模板。

最后使用一个声明打印所有四个点。

好的。因此,我的代码为我提供了point1-point4中的所有值,但是,我无法找到一种在一条语句中将它们全部打印出来的方法。显然,演示类中的循环可以打印每个Point对象,但这将是多个打印语句,这违反了一个打印语句的要求。

此外,我不能在Point类中使用数组,因为它违反了2个字段的要求。

有人可以帮我一个建议,或者建议我如何将所有Point对象打印出来吗?还是有可能,也许我正在读错这个问题?

3 个答案:

答案 0 :(得分:1)

您可以使用PrintStream.format(format(String format, Object... args)

System.out.format("(%f, %f), (%f, %f), (%f, %f), (%f, %f)\n", point1.x, point1.y, point2.x, point2.y, ...and so on);

答案 1 :(得分:1)

我也将其发布为答案,因为我认为这可能是您的老师真正想要的。

这里的关键是要记住,您的类上的toString()方法可以像常规字符串一样使用并连接其他字符串,这就是调用{{1 }}。因此,就像您可能已经在使用常规的+方法一样。

println()

答案 2 :(得分:0)

您可以使用流:

Arrays.stream(new Point[] {point1, point2, point3, point4}).forEach(System.out::println);

String.format()

System.out::println(String.format("%s %s %s %s", point1, point2, point3, point4));