Appendix-Passing-and-Returning-Objects
附录: 对象传递和返回
到现在为止,你已经对“传递”对象实际上是传递引用这一想法想法感到满意。
在许多编程语言中,你可以使用该语言的“常规”方式来传递对象,并且大多数情况下一切正常。 但是通常会出现这种情况,你必须做一些不平常的事情,突然事情变得更加复杂。
提出本附录问题的另一种方法是,如果你之前使用类似
传递引用
当你将引用传递给方法时,它仍指向同一对象。 一个简单的实验演示了这一点:
// references/PassReferences.java
public class PassReferences {
public static void f(PassReferences h) {
System.out.println("h inside f(): " + h);
}
public static void main(String[] args) {
PassReferences p = new PassReferences();
System.out.println("p inside main(): " + p);
f(p);
}
}
/* Output:
p inside main(): PassReferences@15db9742
h inside f(): PassReferences@15db9742
*/
方法 toString()
在打印语句中自动调用,并且 PassReferences
直接从 Object
继承而无需重新定义 toString()
。 因此,使用的是 Object
的 toString()
版本,它打印出对象的类,然后打印出该对象所在的地址(不是引用,而是实际的对象存储