オブジェクトの toString() メソッドを呼び出すと、オブジェクトの属性情報が直接出力されることはわかっていますが、これはどのように実装されるのでしょうか?そしてそれをより良く達成するにはどうすればよいでしょうか?さあ、学びましょう。
Java ドキュメントから、toString() メソッドは Object クラスで定義されており、その戻り値の型は String 型で、クラス名とそのクラスを返すことがわかります。参照アドレス。
String クラスを他の型に接続すると、自動的に toString() メソッドが呼び出されます。デモは次のとおりです:
Date now = new Date(); System.out.println("now = " + now);//相当于下一行代码 System.out.println("now = " + now.toString());
実際のアプリケーションでは、ユーザー定義の型に書き換えることができますtoString() メソッド、たとえば Stirng クラスは toString() メソッドをオーバーライドして文字列の値を返します。ドームは次のとおりです
System.out.println(s1);//相当于下一行代码 System.out.println(s1.toString());
基本データ型が String に変換されるときtype を指定すると、対応するパッケージング クラスの toString() メソッドが呼び出されます。デモは次のとおりです:
int a = 10; System.out.println("a = " + a);
jdk のソース コードがどのようなものかを見てみましょう:
public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); }
さあ、見てみましょうこれを使用して練習します。
Person p1 = new Person(); System.out.println(p1.toString());//TestEquals.Person@15db9742 System.out.println(p1);//TestEquals.Person@15db9742 因为输出的时候回默认调用Objec类toString()方法
オブジェクトを印刷するとき 参照されると、このオブジェクトの toString() メソッドが実際にデフォルトで呼び出されます
印刷されるオブジェクトのクラスが toString をオーバーライドしないときObject の () メソッドを呼び出すと、デフォルトで Object クラスの toString() メソッドが呼び出されます。
このオブジェクトが配置されているクラスと、対応するヒープ領域オブジェクト エンティティの最初のアドレス値を返します。
オブジェクトを出力するクラスが toString() をオーバーライドすると、オーバーライドされた toString() メソッドが呼び出されます。通常、オーバーライドはクラス オブジェクトの属性情報を返すことです。
tostring() メソッドをカスタマイズすることもできます:
//手动实现 public String toString(){ return " Person:name=" + name +" age=" + age; }
以上がJavaでtostringメソッドを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。