10.3 将对象用作参数

可像通常那样将对象作为参数进行传递,例如:

  1. public static void printPoint(Point p) {
  2. System.out.println("(" + p.x + ", " + p.y + ")");
  3. }

这个方法接受一个 Point 参数,并在括号中显示其属性。如果调用 printPoint(blank),它将显示 (3, 4)

然而,我们并不需要 printPoint 这样的方法,因为调用 System.out.println(blank) 将得到如下输出:

  1. java.awt.Point[x=3,y=4]

Point 对象提供了一个名为 toString 的方法,该方法返回点的字符串表示。以对象为参数调用 println 时,将自动调用 toString 并显示结果。这里显示的是类型名(java.awt.Point)以及属性的名称和值。

再来看一个例子。可将 6.2 节中的方法 distance 重写成将两个 Point 对象而不是四个 double 值作为参数:

  1. public static double distance(Point p1, Point p2) {
  2. int dx = p2.x - p1.x;
  3. int dy = p2.y - p1.y;
  4. return Math.sqrt(dx * dx + dy * dy);
  5. }

将对象作为参数可让源代码更易理解且不易出错,因为相关的值被关联起来了。