10.6 指定别名

别忘了,将对象赋给变量时,赋给变量的实际上是指向对象的引用。可让多个变量指向同一个对象,如下所示:

  1. Rectangle box1 = new Rectangle(0, 0, 100, 200);
  2. Rectangle box2 = box1;

结果如图 10-4 所示。

{%}

图 10-4:两个变量指向同一个对象的状态图

请注意,box1box2 是同一个对象的别名,因此,影响其中一个变量的修改也将影响另一个变量。下面的示例将这个矩形的左上角向左、向上各移了 50 个单位,并将其高度和宽度都增加了 100 个单位:

  1. System.out.println(box2.width);
  2. box1.grow(50, 50);
  3. System.out.println(box2.width);

第 1 行显示 100,这是 box2 指向的 Rectangle 对象的宽度;第 2 行对 box1 调用方法 grow,这个方法增大 Rectangle 对象的水平和垂直尺寸,结果如图 10-5 所示。

{%}

图 10-5:说明调用 grow 效果的状态图

通过 box1 所做的修改也将影响 box2,因此第 3 行显示的值为 200——增大后的矩形的宽度。