toString

toString()メソッドはオブジェクトを文字列として表したものを戻り値として返します。
では、サンプルプログラムを見ていきます。

サンプルプログラム(Sample71.java)

class Sample71{
    public static void main(String args[]){
   
 Super71 obj = new Super71(); // Super71のコンストラクタが呼び出されます。
 System.out.println(obj); //toString()メソッドの戻り値が呼び出されます。
    }

}

class Super71{
     public Super71(){

        System.out.println("Super71クラスのコンストラクタです");
 }
     public String toString(){
       String str = "toString()メソッドです";
      return str;
   }

}

プログラムをコピーする場合すべて選択をクリックしてください。

Sponsored link

コンパイル・実行してみます。

ObjectクラスのtoString()メソッド自体は空のメソッドで、基本的にはサブクラスでオーバーライト してやる必要があります。

必ずtoString()メソッドはString型の戻り値が必要になります。

ここでは、Super71クラスで コンストラクタとしてSuper71()と
ObjectクラスからtoString()メソッドを オーバーライドしています。

またこのように、オブジェクトを表す参照変数(ここではobj)を出力すると
toStringクラスの戻り値が 結果に返されます。

また、objectクラスのtoString()はpublicで定義されています。
したがって、サブクラスで定義する場合は必ずpublicをつけなければいけません。

次のコードで確認したいと思います。

サンプルプログラム(Sample71_1.java)

class Sample71_1{
    public static void main(String args[]){
  Super71_1 obj = new Super71_1(); // Super71_1のコンストラクタが呼び出されます。
  System.out.println(obj);    //toString()メソッドの戻り値が呼び出されます。
    }

}
class Super71_1{

     public Super71_1(){
        System.out.println("Super71_1クラスのコンストラクタです");
 }
        String toString(){
       String str = "toString()メソッドです";

      return str;

    }

}

プログラムをコピーする場合すべて選択をクリックしてください。

Sponsored link

中古パソコンのデジタルドラゴン ドロップシッピング代理店
スクール・通信講座の徹底比較!一括資料請求【無料】


コンパイル・実行してみます。

このようにオーバーライドに関するエラーが出力されます。

また、オーバーライドしないでそのままオブジェクトの参照変数を出力すると、
ObjectクラスのtoString()の戻り値となっている数値Sample71_2@数値という文字列が呼び出されます。
では、コードを見ていきましょう。

サンプルプログラム(Sample71_2.java)

class Sample71_2{
 public static void main(String args[]){
  Super71_2 obj = new Super71_2();  // Super71_1のコンストラクタが呼び出されます。
  System.out.println(obj);   //toString()メソッドの戻り値が呼び出されます。
    }

}
class Super71_2{
     public Super71_2(){
        System.out.println("Super71_2クラスのコンストラクタです");

 }
       

}

プログラムをコピーする場合すべて選択をクリックしてください。

Sponsored link

コンパイル・実行します。

このような結果になります。

ページのトップへ戻る