おはようございます!!
今日は、まずは前回分からなかったところの勉強からです!!
それは、「toString()メソッド」についてです。
Tim先生の時も出てきたりしてたのですが、どうも理解がしきれていない、、、
ちょっとAI先生に聞きながら学び直しました。
【toStringメソッド】
オブジェクトを文字列表現にする。
↓
わかりやすい文字列として得る。
toStringメソッドは、Javaの全てのクラスのスーパークラスであるObjectクラスに定義されている。
↓
JavaのオブジェクトならどれでもtoStringメソッドを持っている。
Object obj = new Object();
System.out.println(obj.toStrinng());
↓
ObjectクラスのtoStringメソッドが呼び出されて、objのクラス名とハッシュコード(メモリのアドレス)が出力される。
⇓
java.lang.Object@15db9742
【toStringメソッドのカスタマイズ】
通常、toStringメソッドは、自分のクラスでオーバーライドして、より有用な情報を提供するように変更する。
(Objectクラスで定義されているtoStringメソッドをオーバーライドして、独自クラスの属性が持つ値等を利用したうえで意味のある文字列を生成する)
(クラスPerson)
public Person(String name,int age){
this.name = name;
this.age = age;
@Override
public String toString(){
return “名前: ” + name + “年齢: ” + age;
(実行クラス)
Person person = new Person(“ミート”,8);
System.out.println(person.toString());
※.toString()は、無くても自動で呼び出される。
【独自のメソッドを作って出力するのと何が違うの??】
ここも疑問に思いました。
例えば、
void display();
System.out.println(“名前: ” + name + “年齢: ” + age);
と書くのと何が違うんだろう。。。
使い分けの基準はなんだろう。。。
という疑問です。。。
調べてみると、
toStringメソッド → 単純にオブジェクトの情報を確かめたい時
※開発中に、オブジェクトの状態を簡単に確認できるようにするため。
デバックやロギングで使われる。
独自メソッド → ifとかで条件によって出力内容を変えたい時、項目ごとで改行したい(名前、年齢など)
↓
特定の表示形式が必要な場合
【独自メソッドとtoStringメソッドの併用】
public String toString(){
return “名前” + name + “年齢” + age;
}
public void display(){
System.out.println(“詳細情報: \n” + this.toString());
みたいな感じで併用することもできるみたいです!!
うん!!
理解が深まった!!
よし、次に進もう!!
今日も楽しんでいこう!!!