2013-10-21 147 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