toString
日本語 | 文字列化 |
英語 | to string |
ふりがな | とぅーすとりんぐ、つーすとりんぐ |
フリガナ | トゥーストリング、ツーストリング |
インスタンスの「文字列表現」を返すメソッド。
インスタンスの内部に格納されたデータも含めて文字列化し、Stringクラスの戻り値として返すメソッド。
引数なし、戻り値の型はStringクラス。
この戻り値の文字列にはインスタンスの「概要」が書かれていることになり、インスタンスについて簡単に情報を得ることができる、便利なメソッドである。
toString()メソッドは多くの場面で呼び出される。
たとえば、println()メソッドは渡されたインスタンスのtoString()メソッドを呼び出し、返された文字列を出力する。
また、Eclipse等の開発環境でデバッグ時に変数を見ようとすると、その変数がクラスの参照型変数の場合にはtoString()メソッドが呼び出され、返された文字列がウィンドウに表示される。
toString()メソッドのおかげでインスタンス内の状態を簡単に知ることができ、デバッグ時には非常に役立つメソッドである。
toString()メソッドはObjectクラスのメソッドである。すべてのクラスはObjectクラスのサブクラスだから、すべてのクラスがtoString()メソッドを持つことになる。
ただし、ObjectクラスのtoString()メソッドは、「クラス名@ハッシュ値」というあまり役に立たない情報しか返さない。
J2SEの多くのクラスは、ObjectクラスのtoString()メソッドをオーバーライドし、内部情報を出力する。
自分で作成したクラスに「toString()メソッドで内部情報を出力する」機能を持たせる場合、ObjectクラスのtoString()メソッドをオーバーライドし、フィールド等の「インスタンスの情報」を文字列化し、戻り値として返せばよい。
その際、返す文字列の書式は決まっていない。自由に決めてよい。
それは逆に言えば、返される文字列の書式がバージョンアップ等で変更される可能性が高いということである。書式が決まってない以上、たとえば「toString()メソッドの戻り値をパースして、見ることができないフィールドの情報を取得する」といった使い方は避けた方がいい。
toString()メソッドの戻り値はあくまで人間が目視で確認するためのものである。IntegerクラスのtoString()メソッドのような「出力書式が仕様で決められている」ものは別として、通常はデバッグ時の参考くらいにとどめておいた方がいいだろう。
インスタンスの内部に格納されたデータも含めて文字列化し、Stringクラスの戻り値として返すメソッド。
引数なし、戻り値の型はStringクラス。
この戻り値の文字列にはインスタンスの「概要」が書かれていることになり、インスタンスについて簡単に情報を得ることができる、便利なメソッドである。
toString()メソッドは多くの場面で呼び出される。
たとえば、println()メソッドは渡されたインスタンスのtoString()メソッドを呼び出し、返された文字列を出力する。
また、Eclipse等の開発環境でデバッグ時に変数を見ようとすると、その変数がクラスの参照型変数の場合にはtoString()メソッドが呼び出され、返された文字列がウィンドウに表示される。
toString()メソッドのおかげでインスタンス内の状態を簡単に知ることができ、デバッグ時には非常に役立つメソッドである。
toString()メソッドはObjectクラスのメソッドである。すべてのクラスはObjectクラスのサブクラスだから、すべてのクラスがtoString()メソッドを持つことになる。
ただし、ObjectクラスのtoString()メソッドは、「クラス名@ハッシュ値」というあまり役に立たない情報しか返さない。
J2SEの多くのクラスは、ObjectクラスのtoString()メソッドをオーバーライドし、内部情報を出力する。
自分で作成したクラスに「toString()メソッドで内部情報を出力する」機能を持たせる場合、ObjectクラスのtoString()メソッドをオーバーライドし、フィールド等の「インスタンスの情報」を文字列化し、戻り値として返せばよい。
その際、返す文字列の書式は決まっていない。自由に決めてよい。
それは逆に言えば、返される文字列の書式がバージョンアップ等で変更される可能性が高いということである。書式が決まってない以上、たとえば「toString()メソッドの戻り値をパースして、見ることができないフィールドの情報を取得する」といった使い方は避けた方がいい。
toString()メソッドの戻り値はあくまで人間が目視で確認するためのものである。IntegerクラスのtoString()メソッドのような「出力書式が仕様で決められている」ものは別として、通常はデバッグ時の参考くらいにとどめておいた方がいいだろう。
// Sample.java
public class Sample
{
public static void main( String[] args )
{
// クラスはすべてtoString()メソッドを持ちます。
Integer integer = new Integer( 100 );
String integerString = integer.toString();
System.out.println( integerString );
// 100
// println()メソッドにクラスの参照型変数を渡すと、
// 中でtoString()メソッドを呼び出して、返された
// 文字列を出力します。
Integer integer2 = new Integer( 200 );
System.out.println( integer2 );
// 200
// toString()メソッドはObjectクラスのメソッドなので、
// すべてのクラスがtoString()メソッドを持つことになります。
// そのtoString()メソッドを呼び出してみます。
HasNotToStringClass hasNot = new HasNotToStringClass();
String hasNotString = hasNot.toString();
System.out.println( hasNotString );
// HasNotToStringClass@1d7ad1c
// このようにObjectクラスのtoString()メソッドは
// 「クラス名@ハッシュ値」を出力するので、詳しい情報
// が分かりません。
// toString()メソッドをオーバーライドすれば、
// ポリモーフィズムが働くのでそちらが呼ばれます。
HasToStringClass hasToString = new HasToStringClass();
String hasToStringString = hasToString.toString();
System.out.println( hasToStringString );
// HasToStringClass[i:100]
// デバッグの時に便利なので、自分で作ったクラスには
// toString()メソッドを持たせるようにしましょう。
// Eclipseであれば右クリックメニューの
// 「ソース」→「toString() の生成」でフィールドから
// 自動生成できます。
}
}
/**
* ObjectクラスのtoString()メソッドを
* オーバーライドしないクラス。
*/
class HasNotToStringClass
{
public int i = 100;
// toString()メソッドをオーバーライドしてないので、
// ObjectクラスのtoString()メソッドが呼ばれます。
}
/**
* ObjectクラスのtoString()メソッドを
* オーバーライドしたクラス。
*/
class HasToStringClass
{
public int i = 100;
/**
* Object#toString()をオーバーライドします。
*/
public String toString()
{
// 返す文字列の書式は決まっていません。
// 好きなように、インスタンスの状態が分かりやすい
// 文字列を返せばいいでしょう。
// ここでは、フィールドであるiの中身を出力します。
return "HasToStringClass[i:" + i + "]";
}
}
public class Sample
{
public static void main( String[] args )
{
// クラスはすべてtoString()メソッドを持ちます。
Integer integer = new Integer( 100 );
String integerString = integer.toString();
System.out.println( integerString );
// 100
// println()メソッドにクラスの参照型変数を渡すと、
// 中でtoString()メソッドを呼び出して、返された
// 文字列を出力します。
Integer integer2 = new Integer( 200 );
System.out.println( integer2 );
// 200
// toString()メソッドはObjectクラスのメソッドなので、
// すべてのクラスがtoString()メソッドを持つことになります。
// そのtoString()メソッドを呼び出してみます。
HasNotToStringClass hasNot = new HasNotToStringClass();
String hasNotString = hasNot.toString();
System.out.println( hasNotString );
// HasNotToStringClass@1d7ad1c
// このようにObjectクラスのtoString()メソッドは
// 「クラス名@ハッシュ値」を出力するので、詳しい情報
// が分かりません。
// toString()メソッドをオーバーライドすれば、
// ポリモーフィズムが働くのでそちらが呼ばれます。
HasToStringClass hasToString = new HasToStringClass();
String hasToStringString = hasToString.toString();
System.out.println( hasToStringString );
// HasToStringClass[i:100]
// デバッグの時に便利なので、自分で作ったクラスには
// toString()メソッドを持たせるようにしましょう。
// Eclipseであれば右クリックメニューの
// 「ソース」→「toString() の生成」でフィールドから
// 自動生成できます。
}
}
/**
* ObjectクラスのtoString()メソッドを
* オーバーライドしないクラス。
*/
class HasNotToStringClass
{
public int i = 100;
// toString()メソッドをオーバーライドしてないので、
// ObjectクラスのtoString()メソッドが呼ばれます。
}
/**
* ObjectクラスのtoString()メソッドを
* オーバーライドしたクラス。
*/
class HasToStringClass
{
public int i = 100;
/**
* Object#toString()をオーバーライドします。
*/
public String toString()
{
// 返す文字列の書式は決まっていません。
// 好きなように、インスタンスの状態が分かりやすい
// 文字列を返せばいいでしょう。
// ここでは、フィールドであるiの中身を出力します。
return "HasToStringClass[i:" + i + "]";
}
}
// Sample.java public class Sample { public static void main( String[] args ) { // クラスはすべてtoString()メソッドを持ちます。 Integer integer = new Integer( 100 ); String integerString = integer.toString(); System.out.println( integerString ); // 100 // println()メソッドにクラスの参照型変数を渡すと、 // 中でtoString()メソッドを呼び出して、返された // 文字列を出力します。 Integer integer2 = new Integer( 200 ); System.out.println( integer2 ); // 200 // toString()メソッドはObjectクラスのメソッドなので、 // すべてのクラスがtoString()メソッドを持つことになります。 // そのtoString()メソッドを呼び出してみます。 HasNotToStringClass hasNot = new HasNotToStringClass(); String hasNotString = hasNot.toString(); System.out.println( hasNotString ); // HasNotToStringClass@1d7ad1c // このようにObjectクラスのtoString()メソッドは // 「クラス名@ハッシュ値」を出力するので、詳しい情報 // が分かりません。 // toString()メソッドをオーバーライドすれば、 // ポリモーフィズムが働くのでそちらが呼ばれます。 HasToStringClass hasToString = new HasToStringClass(); String hasToStringString = hasToString.toString(); System.out.println( hasToStringString ); // HasToStringClass[i:100] // デバッグの時に便利なので、自分で作ったクラスには // toString()メソッドを持たせるようにしましょう。 // Eclipseであれば右クリックメニューの // 「ソース」→「toString() の生成」でフィールドから // 自動生成できます。 } } /** * ObjectクラスのtoString()メソッドを * オーバーライドしないクラス。 */ class HasNotToStringClass { public int i = 100; // toString()メソッドをオーバーライドしてないので、 // ObjectクラスのtoString()メソッドが呼ばれます。 } /** * ObjectクラスのtoString()メソッドを * オーバーライドしたクラス。 */ class HasToStringClass { public int i = 100; /** * Object#toString()をオーバーライドします。 */ public String toString() { // 返す文字列の書式は決まっていません。 // 好きなように、インスタンスの状態が分かりやすい // 文字列を返せばいいでしょう。 // ここでは、フィールドであるiの中身を出力します。 return "HasToStringClass[i:" + i + "]"; } }
「みだし」に含まれているページ
「解説」に含まれているページ
「サンプルプログラムとか」に含まれているページ
- &=演算子
- &演算子
- 0x
- 10進数
- 16進数
- 2の補数
- 2進数
- 8進数
- <%= %>
- <<=演算子
- <<演算子
- >>=演算子
- >>>=演算子
- >>>演算子
- >>演算子
- [L
- ^=演算子
- ^演算子
- BufferedWriter
- CharArrayWriter
- Comparator
- DOM
- double
- ExceptionInInitializerError
- float
- HttpServletRequest
- HttpURLConnection
- int
- InvocationTargetException
- IPアドレス
- java.net.URL
- JSP式
- JUnit
- Locale
- NaN
- new
- Node
- null
- NullPointerException
- println
- printStackTrace
- PrintWriter
- RSS
- Rss4j
- Runnable
- ServletException
- strictfp
- StringWriter
- super
- superフィールド
- TestCase
- this
- Thread
- toString
- URI
- URL
- Xerces
- XML
- |=演算子
- |演算子
- ~演算子
- ぬるぽ
- オブジェクト指向
- オーバーロード
- カレント
- コンポジション
- ジェネリックメソッド
- スコープ
- ソート
- テキストファイル
- テストファースト
- ドメイン名
- バイアス
- バイト
- ビットシフト演算子
- ビットフラグ
- フラッシュ
- ホスト
- ポート番号
- メタ
- リクエストパラメーター
- リフレクション
- ルート
- ロケール
- ローカル変数
- 仮数部
- 例外
- 分割子
- 委譲
- 安定ソート
- 引数
- 戻り値
- 投げられる
- 指数部
- 整数
- 木構造
- 桁溢れ
- 桁落ち
- 浅いコピー
- 浮動小数点
- 無理数
- 無限大
- 算術右シフト
- 論理右シフト
- 集約