为什么println打印引用对象的值而不是对象的地址

tez*_*tez 0 java reference

String myString="Plz_help";
Run Code Online (Sandbox Code Playgroud)

我开始知道'myString'不是一个对象,而是一个对象引用变量,它存储了实际对象的基地址.所以'myString'应该在我执行时返回一个地址

System.out.println(myString);
Run Code Online (Sandbox Code Playgroud)

但是它将'Plz_help'返回到输出.

Myclass obj_ref_var=new Myclass();
Run Code Online (Sandbox Code Playgroud)

当我为我创建的其他类使用相同的System.out.println(obj_ref_var)时,它返回地址.

And*_*nov 5

当您调用System.out.println对象引用时,系统将执行toString()为此引用引用的实际对象定义的方法.对于String此方法,返回其值.

显然,您没有toString()为您的类定义方法,这就是您获取对象类名+哈希码的原因.