logo

Java toString() メソッド

オブジェクトを文字列として表現したい場合は、 toString() メソッド 存在するようになる。

toString() メソッドは、オブジェクトの String 表現を返します。

オブジェクトを出力すると、Java コンパイラは内部でオブジェクトの toString() メソッドを呼び出します。したがって、 toString() メソッドをオーバーライドすると、必要な出力が返されます。これは、実装に応じてオブジェクトの状態などになる可能性があります。

Java toString() メソッドの利点

Object クラスの toString() メソッドをオーバーライドすることで、オブジェクトの値を返すことができるため、多くのコードを記述する必要はありません。

toString() メソッドがない場合の問題を理解する

リファレンスを出力する簡単なコードを見てみましょう。

Student.java

 class Student{ int rollno; String name; String city; Student(int rollno, String name, String city){ this.rollno=rollno; this.name=name; this.city=city; } public static void main(String args[]){ Student s1=new Student(101,'Raj','lucknow'); Student s2=new Student(102,'Vijay','ghaziabad'); System.out.println(s1);//compiler writes here s1.toString() System.out.println(s2);//compiler writes here s2.toString() } } 

出力:

 Student@1fee6fc Student@1eed786 

上の例でわかるように、s1 と s2 を出力するとオブジェクトのハッシュコード値が出力されますが、私はこれらのオブジェクトの値を出力したいと考えています。 Java コンパイラは内部で toString() メソッドを呼び出すため、このメソッドをオーバーライドすると指定された値が返されます。以下の例でそれを理解してみましょう。

Java toString() メソッドの例

toString() メソッドの例を見てみましょう。

Student.java

 class Student{ int rollno; String name; String city; Student(int rollno, String name, String city){ this.rollno=rollno; this.name=name; this.city=city; } public String toString(){//overriding the toString() method return rollno+' '+name+' '+city; } public static void main(String args[]){ Student s1=new Student(101,'Raj','lucknow'); Student s2=new Student(102,'Vijay','ghaziabad'); System.out.println(s1);//compiler writes here s1.toString() System.out.println(s2);//compiler writes here s2.toString() } } 

出力:

 101 Raj lucknow 102 Vijay ghaziabad 

上記のプログラムでは、Java コンパイラが内部で呼び出します。 toString() メソッドの場合、このメソッドをオーバーライドすると、指定された値が返されます。 s1 そして s2 Student クラスのオブジェクト。