toString()の書き換え方法について
2275 ワード
Javaを勉強している人はすべて知っています。Javaはすべての種類がobjectのサブクラスです。したがって、すべてのJavaオブジェクトは、Objectクラスが提供する方法を呼び出すことができます。その中の一つがStringです。なぜToSteringを書き換える方法があるのかを説明します。
まず最初にPersionクラスを作成します。簡単にfirstnameとlastnameだけを含みます。もちろん、そのsetterとgetter法を加えます。comp.beanの下に置く:
注:オブジェクトを印刷して、直接System.out.println(p)ができます。実はjavaはpのtoString()メソッドを自動的に呼び出します。
しかし、私たちが一般的に欲しい結果はそうではありません。object類のtoString()方法は常に対象の実現クラス名+@+hashCode値に戻ります。これは明らかに私たちの需要を満たすことができません。ここではpのフルネームをプリントしたいですが、toStering()を書き換える方法が必要です。toStering()を書き直した後、pはtoStering()メソッドを呼び出す際に、自分のクラスのtoStering()メソッドを優先的に呼び出します。
修正後のクラスは以下の通りです。
この時、プリントアウトの結果は
もちろん、必要に応じて、どのようにオブジェクトを印刷しますか?
まず最初にPersionクラスを作成します。簡単にfirstnameとlastnameだけを含みます。もちろん、そのsetterとgetter法を加えます。comp.beanの下に置く:
package com.bean;
public class Persion {
private String firstname;
private String lastname;
public String getFirstname() {
return firstname;
}
public void setFirstname(String firstname) {
this.firstname = firstname;
}
public String getLastname() {
return lastname;
}
public void setLastname(String lastname) {
this.lastname = lastname;
}
}
次に、新しいクラスを作成します。Testという名前で、main関数を含めるようにします。package com.override;
import com.bean.Persion;
public class Test {
public static void main(String[] args) {
Persion p = new Persion();
p.setFirstname("Fire");
p.setLastname("Water");
System.out.println(p.toString());
}
}
運転後の結果が見えます。com.bean.Persion@c17164
注:オブジェクトを印刷して、直接System.out.println(p)ができます。実はjavaはpのtoString()メソッドを自動的に呼び出します。
しかし、私たちが一般的に欲しい結果はそうではありません。object類のtoString()方法は常に対象の実現クラス名+@+hashCode値に戻ります。これは明らかに私たちの需要を満たすことができません。ここではpのフルネームをプリントしたいですが、toStering()を書き換える方法が必要です。toStering()を書き直した後、pはtoStering()メソッドを呼び出す際に、自分のクラスのtoStering()メソッドを優先的に呼び出します。
修正後のクラスは以下の通りです。
package com.bean;
public class Persion {
private String firstname;
private String lastname;
public String getFirstname() {
return firstname;
}
public void setFirstname(String firstname) {
this.firstname = firstname;
}
public String getLastname() {
return lastname;
}
public void setLastname(String lastname) {
this.lastname = lastname;
}
// toString
public String toString(){
return firstname + " " + lastname;
}
}
この時、プリントアウトの結果は
Fire Water
もちろん、必要に応じて、どのようにオブジェクトを印刷しますか?