- ベストアンサー
toString()メソッドの戻り値とは?
- toString()メソッドの戻り値とは「Car@数値」という文字列が画面に出力されることを意味します
- toString()メソッドはObjectクラスから継承されたメソッドであり、デフォルトの実装ではオブジェクトのクラス名とハッシュコードが組み合わされた文字列を返します
- 「Car@数値」という文字列は、Carというクラスのインスタンスであることを示し、後ろの数値はオブジェクトのハッシュコードを表しています
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
書いてある通り ○「"Car@数値"という文字列」が画面に出力される。 ○「"Car@数値"という文字列」はcar1.toString()メソッドの戻り値である。 ということです。 System.out.println( car1 ); は、引数の型から判断して System.out.println( java.lang.Object ) が呼び出されるので、 System.out.print( String.valueOf(car1) );System.out.println(); に相当します。 http://docs.oracle.com/javase/jp/7/api/java/io/PrintStream.html#println%28java.lang.Object%29 String.valueOf(car1) は、car1がnullでなければ car1.toString() に相当します。 http://docs.oracle.com/javase/jp/7/api/java/lang/String.html#valueOf(java.lang.Object) car1.toString() は、オーバーライドされていなければ、ObjectクラスのtoString()になります。 下の説明にあるように「クラス名@16進文字列」の形になります。 car1のCarクラスのインスタンスなら、「Car@16進文字列」となります。 http://docs.oracle.com/javase/jp/7/api/java/lang/Object.html#toString() 以上の流れから System.out.println( car1 ); は System.out.print( "Car@16進文字列" );System.out.println(); と同等、つまり「 "Car@16進文字列"という文字列を標準出力へ出力して、その後、画面へ改行を出力」ということです。 標準出力は、画面になっていることが多いので、 「 "Car@16進文字列"という文字列を画面へ出力して、その後、画面へ改行を出力」 と説明していることもあります。
その他の回答 (1)
- めとろいと(@naktak)
- ベストアンサー率36% (785/2139)
Carクラスである@そのインスタンスに紐付く一意の数値 です。 public class Test { public static void main(String args[]) { Hoge hogeA = new Hoge(); Hoge hogeB = new Hoge(); Fuga fugaA = new Fuga(); Fuga fugaB = new Fuga(); System.out.println(hogeA); System.out.println(hogeB); System.out.println(fugaA); System.out.println(fugaB); } } class Hoge { } class Fuga { } 基本的にそんな情報、よほどの事がない限り使わないので気にする必要ありません。
お礼
回答有難うございます。
補足
しょうもない質問ですいません、@マークという表現はJavaの解説でお決まりな言い方なんでしょうか?