Javaにおける全てのクラスの祖先はlang.objectクラスである。 全てのクラスは、Objectクラスで定義されたメソッドを持つことが可能。
自作クラスで、実装してもないのにequals()やtoString()が使えるのはこういった理由から。 とはいえクラスを作成したらオーバーライドしないと、toString()しても @******* といった文字列(インスタンスのアドレス)が出力される。
toString()は、「インスタンスの内容を、人間が読んで理解できる文字列を返す」 という責務があたえられたメソッド。 System.outは、引数にインスタンスを渡すと そのtoString()メソッドを呼び出して文字列表現を取り出し、画面に表示する。
適切な使用の為にはオーバーライド必要。
//Main.java public class Main { public static void main(String[] args) { Station station = new Station(); station.setName("秋葉原"); station.setNumber(1); System.out.println(station.toString()); } } //Station.java public class Station { private String name; private int number; public String toString() { return ("*駅名*:" + this.name + "*番号*:" + this.number); } public void setName(String name) { this.name = name; } public void setNumber(int number) { this.number = number; } }
■出力結果 駅名:秋葉原番号:1