嗨,我在看关于对象,实例的stackoverflow上的另一篇文章。

我尝试了一些代码。

public class Puppy{

   public Puppy(String name){
      // This constructor has one parameter, name.
     System.out.println(name);
   }

   public static void main(String []args){
      // Following statement would create an object myPuppy
      Puppy myPuppy = new Puppy("Tommy");
      Puppy myPuppy2 = new Puppy ("Sally");
      System.out.println(myPuppy);
   }
 }


输出是

Tommy
Sally
Puppy@58886ad0


题:
当我尝试在main方法中打印出对象myPuppy时,它打印出其引用而不是值?我该如何解决?

另外,有人提到我实际上没有存储小狗的名字,我需要编写一个toString方法来打印出值而不是引用。
我应该如何完成以上工作?

非常感谢!

最佳答案

您必须在toString()上实现Puppy ...

@Override
public String toString() {
    return "Puppy[name=" + name + "]";
}


显然,使它返回的String符合您的需求。

编辑:正如其他人所提到的,请确保在构造Puppy时实际上存储了名称。

07-24 09:17