2013-10-21 182 views
1

我总是得到下面的输出,当我试图从一个阵列输出:阵列输出? Java的

[email protected] 

可能有人请告诉我,我做错了什么?

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]); 
+0

'System.out.println(buch [i] .getXxx())' – 2013-10-21 11:25:39

+0

覆盖Buch类中Object类的toString方法。信息[这里] [1] [1]:http://stackoverflow.com/questions/3615721/how-to-use-the-tostring-method-in-java –

回答

5

您必须在您的班级Buch中使用toString()方法。

作为每Object#toString()

文档返回该对象的字符串表示。通常,toString方法返回一个“文本表示”该对象的字符串。

所以

[email protected]Buch类的文字表述。

你只是ovveride toString方法在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()); 
+0

谢谢它的工作现在。 :) – user2894227

1

你需要重写toString方法在你的Buch clas到ge以漂亮的方式输出输出。

当使用sysout打印对象时,将调用其toString方法。如果toString方法未在类中重写,则将使用其默认实现。对象的默认实现toString方法打印由@符号分隔的对象的哈希代码的类名称和无符号十六进制表示。

注意:大多数IDE提供了一种自动生成toString方法的方法。

0

重写从Object类继承的toString方法。 more info