当我尝试从数组中获取输出时,总是得到以下输出:

test1.Buch@5ef4b65d


有人可以告诉我我做错了什么吗?

Buch[] buch = new Buch[30];

for(int i = 1; i < buch.length; i++) {
    buch[i] = new Buch();

    char reply;
    Scanner in = new Scanner(System.in);

    // input data into the Array
    //.....

    System.out.println(buch[i]);

最佳答案

您必须在类toString()中ovveride Buch方法。

根据Object#toString()的文档


  返回对象的字符串表示形式。通常,toString方法返回一个“以文本形式表示”此对象的字符串。


所以

test1.Buch@5ef4b65dBuch类的文本表示形式。

您只需在toString类中使用ovveride Buch方法。

为了获得所需的输出覆盖toString()

class Buch{
    @Override
            public String toString() {
                 StringBuilder result = new StringBuilder();
                 result.append(this.name );
                 // append other properties too.
                 return result.toString();
            }
}


如果您只是打印Buch类的特定属性

System.out.println(buch[i].propertyname);


要么

  System.out.println(buch[i].getProeprtyName());

09-04 14:19