-1

// to string がどのように機能し、その主な機能は何かを理解しようとしてきましたが、問題が発生しています。次の例のように。toString メソッドは正確には何をしますか?

public class Item {

    private String name;
    private int price;
    private int qty;

    public Item() {

    }

    public Item(String n, int p, int q){
        this.name=n;
        this.price=p;
        this.qty=q;
    }

    public String getName() {
        return name;
    }

    public int getPrice() {
        return price;
    }

    public int getQty() {
        return qty;
    }

    public String toString() {
        return name +": $" + price+":" + qty;
    }
4

5 に答える 5

8

toStringの目的は、API で明確に文書化されています。

オブジェクトの文字列表現を返します。一般に、toString メソッドは、このオブジェクトを「テキストで表す」文字列を返します。結果は、人が読みやすい簡潔で有益な表現になるはずです。すべてのサブクラスがこのメソッドをオーバーライドすることをお勧めします。

Object#toString() will produce:

クラス Object の toString メソッドは、オブジェクトがインスタンスであるクラスの名前、アットマーク文字 `@'、およびオブジェクトのハッシュ コードの符号なし 16 進数表現で構成される文字列を返します。つまり、このメソッドは次の値に等しい文字列を返します。

 getClass().getName() + '@' + Integer.toHexString(hashCode())

クラス呼び出しで toString をオーバーライドすると、デフォルトの Object#toString() が yourclass#toString() に置き換えられます。現在のコードでは、 Item インスタンスを出力しようとすると、出力は次の形式になります。

name +": $" + price+":" + qty;
于 2013-03-21T15:17:42.803 に答える
1

toString通常、オブジェクトのユーザーフレンドリー/読み取り可能な文字列表現です。デバッグ、ロギング、またはエンドユーザー/クライアントへの情報の表示に使用できます。

toString をいつどのように使用するかを説明する短いチュートリアルを次に示します。

于 2013-03-21T15:17:29.857 に答える
0

toString は、Java がクラスのオブジェクトの文字列表現を必要とするたびに呼び出される関数です。たとえば、System.out.println(a);where a is of typeを呼び出すとItem、返される値toStringが表示されます。このメソッドは の一部であるObjectため、すべての Java オブジェクトにはデフォルトの実装がいくつかあります。それでも多くの場合、十分な情報が得られないため、上書きする方が適切です。

于 2013-03-21T15:17:30.263 に答える
0

toStringStringの表現を提供しますObject

public class Person {
    private String firstName;
    private String lastName;

    private Person(String firstName, String lastName) {
         this.firstName = firstName;
         this.lastName = lastName;
    }

    public String getName() {
        return this.firstName + " " + this.lastName;
    }

    public String toString() {
        return this.firstName + " " + this.lastName;
    }
}

このクラスと次の呼び出しを想像してください。

System.out.println(aPerson.getName());

私たちのtoStringメソッドは、次のことを簡単に実行できることを意味します。

System.out.println(aPerson);
于 2013-03-21T15:19:24.560 に答える