読者です 読者をやめる 読者になる 読者になる

A Clockwork …

~雑記メモ~

toStringに関して

ObjectクラスにはtoStringメソッドが定義されています。
つまり、Javaのすべてのクラスに共通した基底クラスであるObjectクラスであるため、JavaのすべてのクラスにtoStringメソッドが呼べることになります。

では、toStringはどういった意味があるのでしょうか。

正解は、オブジェクトにそったString型の意味のある文字列を返すメソッドです。

具体的には次を見てみましょう。

		Hoge tmp = new Hoge();
		System.out.println(tmp);

printlnには、Hogeクラスのtmpを代入しています。
この場合、何がコンソールにアウトプットされるのかというと、toStringメソッドが呼ばれ、ここが返す値をアプトプットされます。

具体的にHogeクラスが以下のようになっているとします。

public class Hoge {

	private String str = "This is Hoge class.";

	@Override
	public String toString() {
		return str;
	}
}

この場合、上の例を実行すると以下のような結果が出力されます。

This is Hoge class.

暗黙的に、あるオブジェクトをprintlnでアウトプットするとtoStringメソッドが呼ばれていることが確認できますね。

どういった場合に用いるかというと、ログ出力や例外が発生した時に明示的に情報をまとめてアウトプットしたいときに用います。
自分で新しいクラスを実装することがありましたら、必ずtoStringメソッドも実装しましょう。
明示的に@Overrideを書くようにもしましょう。

本日は以上です。