タムちんのJava学習日記 第8話 〜superってなんか強そう〜

11?4?(?)

今日学習したのは

  • スーパークラス・サブクラス
  • this・super

について学習しました!!

javaでは既存のクラスを元に新しいクラスを定義することができます。
これを継承と言います。

継承において、既存のクラスを

スーパークラス

新しく定義されるクラスを

サブクラス

と言います。
こちらが記述例になります。

class SarubeeA { }

class SarubeeB extends SarubeeA { }

1行目では「sarubeeA」クラスを定義し、2行目では「sarubeeA」クラスを継承した「sarubeeB」クラスを定義しています。
2行目で、2つのクラスの間に「extends」という文字がありますね。
これは継承を宣言するものなので必ず記述してください!!

では、継承することでどんなメリットがあるのでしょうか?

それは既存クラスの変数やメソッドを引き継ぐことができ、新たに定義しなくても済むようになります。
これにより、コードの可読性が向上するのです!!

ね?結構便利でしょ!!

次に「this」「super」です。

int id;

void setId (int id) {

id = id;

}

上記のようなコードがあったとします。
これでは変数名とメソッドの引数名が一緒であるため、メソッドで行われている処理をすると、
引数のidを変数のidに代入されません。

int id;

void setId (int id) {

this.id = id;

}

こちらは先ほどと違い、メソッド内の左側のidに「this」が付いています。
この「this」をつけることで、変数のidであることを示すことができ、引数のidを変数のidに代入することができます。

続いて「super」です。

先ほど継承について説明しましたよね。
そこで出てきたのがサブクラスとスーパークラスでした。

「super」はサブクラスで、スーパークラスの変数やメソッドを使用したい時に記述します。

class SarubeeA {

int id = 10;

}

class SarubeeB extends SarubeeB {

int id = 20;

System.out.println(id); ①

System.out.println(super.id); ②

}

System.out.println();とは「()」内のものを出力するメソッドです。

上記のように記述すると、

①では20、②では10が出力されます。
このように「super」を使うことでスーパークラスの変数などを使うことが可能になります。

今回学習した部分は動きがわかりやすく、学習もしやすかったですね。
それにプログラミング感がだいぶ強まってきたので、勉強していて楽しいです!!

早くエンジニアになりたいですね。
なのでもっと頑張ります!!!

PAGE TOP