[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends:00351] Re: オブジェクトの印刷



  ========== 楽天ビジネス http://business.rakuten.co.jp =========
□■□■□■□■□■□■□■□■ ●既に約3,000社の企業様がご利用中 ●
■ ビジネスサービス商談市場 □ ●必要なサービス提供企業が見つかる●
□   ★楽天ビジネス★   ■ ●素早く簡単に複数社からの見積獲得●
■□■□■□■□■□■□■□■□ ●サービス提供企業の登録も受付中 ●
------------------------------------------------------------------------


小薮です。

On Wed, 14 Mar 2001 21:59:34 +0900
in [jfriends:00348] オブジェクトの印刷
"Satoh" <kgd01422@xxxxxxxxxxxxxxxxx> wrote:

> たまたまJavaの参考書にオブジェクトの印刷例が
> 載っていました。
> オブジェクトは本来、クラスのインスタンス化された
> ものでそれ自体印刷する意味があるのかと思って
> おりましたが、...
> 
> Systemクラスにprint(Object)メソッドがあって
> そのメソッドはvalueof(Object)を呼び出すらしい。

Systemクラスではなく、Systemクラスのパブリック
フィールド「out」じゃないですか? (errかも)
	System.out.print(hoge);
とか書いてあったと思いますが。
System.outはPrintStreamということになってます。

あと、重箱の隅をつつくようで申し訳ないですが、
「印刷」ではないですね。
英語では標準出力などへの出力にもprintという単語を
使ってしまうようですが、日本語の場合「印刷」というのは
必ずプリンタへの出力になると思います。


> valueof(Object)はObject.toString()を呼び出す
> らしい。
> 
> ということでオブジェクトを印刷するとそのクラスの
> toString()メソッドを呼び出して印刷するみたいです。
> 
> ObjectクラスのtoString()メソッドをオーバーライド
> していないと当然Objectクラスのものが呼び出されて
> その結果”クラス名@ハッシュ関数結果の文字列”が
> 印刷されます。
> 
> 上記は、つらつらAPIリファレンスをサーフィンした結果
> ですが、このオブジェクトの印刷の意味ってあるんで
> しょうかね。(使い道が今ひとつなんですが。)

toString()は、通常デバッグとかロギングなどの
用途のために使うものと理解してます。たとえば例外処理の中に
toString()の結果を出力する処理を入れておけば、
とりあえず問題のあるオブジェクトがどんなものかに関する
情報が得られます。

もっと別な形での出力が望ましければオーバーライド
すればよいわけです。


-----------------------------------
koyabu@xxxxxxxxxxxxxxxxx