20日目②(2025.02.19) thisとsuper


お疲れ様です!!

次のテーマは「this」と「super」です!!
Tim先生の動画で勉強していた際に、thisは、幾度となく出てきて自分でも使ってみました。
ただ、「thisとはなんぞや」ということに対しては100%自信を持って答えられないのが現状です、、、
superは、なんか自動で生成された記憶があるくらいです。。。

というわけで、
菅原先生、今回もよろしくです!!

【使い方①】

使い方は2つあるそうですがその内の1つ目が、
「メンバ変数・メソッドの呼び出し」
です。

this.~ → このオブジェクトの~
super.~ → スーパークラスの~


たとえば、
String name;
void setName(String name){
this.name = name;

だったら、this.nameは、このオブジェクトのメンバ変数nameを表現しているということです。
= nameは、引数の(String name)を表現していて、ダブらないようになっているということとのことです!!

そして、superですが、

super.display();

だったら、スーパークラスのdisplay()メソッドを呼び出すということですね!!

うん!!
これだったら、変更点や修正点が出てきても呼び出し元だけを変えたらいいということですね!!

あと菅原先生が説明してくださったメリットとしては、
「引数の名前を考えなくていい」
ということ。
面倒なのと、Eclipseの機能でプログラムを自動的に作成ができるようになるとのことです。

【使い方②】

thisとsuperによるコンストラクタの呼び出し
this(引数)、super(引数)


という使い方を教えていただきました。

これが、コンストラクタの時に言っていたやつですね!!

this(~)は、同じクラスの中でコンストラクタを呼び出すことができる。
super(~)は、スーパークラスのコンストラクタを呼び出すことができる。


とのことです!!


public class Person{
private String name;

public Person(){
this(“未設定”);
}

public Person(String name){
this.name = name;
}
}


というコードの場合、
this(“未設定”)は、このPersonクラスで
・引数が1つ
・メソッド名がPerson
を呼び出す

“未設定”が、this.nameの中に設定される。

ということですね!!

その後、コードを書いて練習しました!!

なかなか理解が深まりました!!

引き続き、楽しんでいこう!!!

コメントを残す