2

java.lang.Object@19821f とはどういう意味ですか? これは、割り当てなしでオブジェクト型の変数を出力しようとしたときの出力です。コード:

Object object = new Object();
System.out.println(object);
4

4 に答える 4

4

RTFM Object#toString、:

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

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

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

バックグラウンドで、その引数 System.out.printlnのメソッドを呼び出すことに注意することが重要です。toString

于 2013-01-29T03:40:16.247 に答える
0

それは、toString()メソッドが型に対して出力するObjectものです。(現在)次のように指定されています。

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

Objectはすべてのオブジェクトの uber-class であるため、任意のタイプのオブジェクトである可能性があるため派生オブジェクトがtoString()メソッドをオーバーライドして、より有用な表現を提供することが期待されます。

于 2013-01-29T03:35:36.537 に答える
0

これが のデフォルトの実装ですObject.toString()ソースコードを見ることもできます。

于 2013-01-29T03:36:41.633 に答える
0

これは、インスタンス化したオブジェクトのハッシュコードです。println メソッドはオブジェクトの toString メソッドを呼び出すだけです。

于 2013-01-29T03:36:45.723 に答える