今回は「Objectクラス」についてです。
ここまで勉強してきて、オブジェクトやら色々と横文字の単語がたくさん耳に飛び込んで混乱ぎみです。。。
ちょっと時間をとって、そこらへんの復習をする時間も取らねば、、、
でもまあ、とりあえず菅原先生、よろしくです!!
【Objectクラスとは】
全てのクラスのルートとなるクラス。
全てのクラスはObjectクラスを継承している。
class Student{
のように何も継承していないクラスは、「extends Object」が自動で挿入される。
Objectクラスの中では、全てのjavaクラスの中で最低限必要なメソッドが定義されている。
【equalsとtoString】
boolean equals(Object obj)
自分のオブジェクトと、引数として受け取ったobjが等しいかを比べる。
Student.stu1 = new Student();
stu1.setName(“ネプチューンマン”);
Student.stu2 = new Student();
stu2.setName(“ネプチューンマン”);
boolean result = stu1.equals(stu2);
この場合、名前が同じなので「true」になるかと思いきや、、、
結果は「false」でした。
文字列が同じでも、stu1とstu2とでオブジェクトがあるメモリ値が違うのでfalseになるみたいです。
(newでインスタンス化をするのではなく、stu1 = “ネプチューンマン”みたいにするとtrueになる)
⇓
Objectクラスのequals()メソッドは、変数の中身(アドレス値)を比べる
なお、equals()は、演算子「==」と同じだそうです。
★String toString()
オブジェクトの情報を文字列で返す。
System.out.println(obj)した時は、自動的に「toStringメソッド」が呼び出される。
最後に菅原先生に倣ってコーディング!!
public class Student{
private String name;
public Student(String name){
this.name = name;
}
public String toString(){
return “私の名前は” + name + “です”;
}
}
(実行クラス)
Student stu1 = new Student(“ビッグ・ザ・武道”);
Student stu2 = new Student(“ビッグ・ザ・武道”);
boolean result = stu1.equals(stu2);
System.out.println(result);
System.out.println(stu1);
}
}
⇓
false
私の名前はビッグ・ザ・武道です
今回も理解はできたと思うのですが、使いこなせるかどうかがまじで不安です、、、
次も楽しんでいこう!!!