2012-01-04 10 views
7

私はjavaの初心者です。言って、私はクラスを持っています個々のオブジェクトへの参照の印刷

[email protected] 
  1. これの意味は何ですか:私は、コードの上

    Individual ind = new Individual(); 
    System.out.println(ind); 
    

    は、このような出力を提供します印刷したいですか?

  2. そのオブジェクトに一意のID がありますか?
  3. カスタマイズすることはできますか?私は 私は印刷するときに出力を与える私自身の機能を書くことを意味する?
  4. もしそうなら、どうすればいいですか ?
+0

私は自分の答えを詳述しました。それはあなたにもっと役立つでしょう。ありがとう – Ahamed

答えて

10

を参照してください、あなたは親(Object)クラスのtoString()メソッドをオーバーライドする独自のtoString()メソッドを実装する必要があります。デフォルトでは、すべてのクラス(何を作成しても)はObjectクラスに拡張されます。

サンプルコード:

public class Individual { 
    private String name; 
    private String city; 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public String getCity() { 
     return city; 
    } 

    public void setCity(String city) { 
     this.city = city; 
    } 

    @Override 
    public String toString() { 
     StringBuilder builder = new StringBuilder(); 
     builder.append("Name of Individual :").append(this.getName()) 
       .append("\nCity :").append(this.getCity()); 
     return builder.toString(); 
    } 
    public static void main(String[] args) { 
     Individual individual = new Individual(); 
     individual.setName("Crucified Soul"); 
     individual.setCity("City of Crucified Soul"); 
     System.out.println(individual); 
    } 
} 

出力:あなたは多くの変数との大きなクラスを持っている場合は

Name of Individual :Crucified Soul 
City :City of Crucified Soul 

は、あなたがあなたのtoString()メソッドを実装するためにXStreamを使用することができます。 XStreamはXML形式で意味のあるオブジェクトを出力します。それらを解析しても同等のオブジェクトに戻すことができます。これがあなたを助けることを願っています。

+0

'1922221'が本当に最初の場所に来た理由/方法に関する説明はありません。 – KNU

7

これは、デフォルトのtoString()メソッド(クラス名+ハッシュコード)の結果です。これは、toString()をオーバーライドすることでオーバーライドできます。ここ

いくつかの参照:http://www.javapractices.com/topic/TopicAction.do?Id=55

2

まだ解説されていないので、toString()メソッドをオーバーライドするということは、クラス内に独自のtoString()メソッドを作成することを意味します。あなたのクラスに独自のバージョンのtoString()を置くことで、javaはデフォルトではなくtoString()メソッドを使用するようにします。ただし、元のtoString()メソッドは文字列を返すため、toString()メソッドも文字列を返す必要があります。個々のクラスは次のようになります。

public class Individual{ 

    //any other code in the class 

    public String toString(){ 
     return "your string"; 
    } 

} 

次に、あなたがSystem.out.print(ind)を呼び出したときに、次のようになります。それはあなたの文字列を印刷します。

関連する問題