【java】javaにおけるコンストラクタの使い方・おさらい

  • 2019年6月25日
  • Java

javaでコンストラクタの使い方がわかってきてもう怖いものはないと思っていましたが、いずれまたすぐ忘れるかもなので自分用に

とっておきます。コンストラクタは、インスタンスを作る時に初期値を設定するために呼び出されるメソッドのことで、クラス名と

必ず同じ名前でなければなりません。また、コンストラクタのメソッド内でreturnを書いても死ぬのでここも注意ですね。

知らないうちはそんなのメンバ変数を適当に定義しとけばいいじゃんと思っていましたが、コードが大きくなるにつれ結局メンテナンス

が大変になって汚いコードになることを知ったのでまた使い方をおさらいしていたところです。理屈で知っていても何のために使う

か実際に書いて理解していないとわかったつもり状態になってしまうのでここにきてサンドボックスで少し復習しました、はい。

次のプログラムは、コンストラクタのメソッドに決められた文字を設定して、superでスーパークラスのコンストラクタを利用して

それぞれ異なる結果を出力するプログラムです。

 

</pre>
// スーパークラス
class ClassSuper {
protected int i;

public ClassSuper(str i){
this.i = i;
}

public void favarite(){
System.out.println("私は" + i + "が好きではありません。");
}
}
// サブクラス
class ClassSub extends ClassSuper{
public ClassSub(str i) {
super(i);
}

@Override
public void favarite(){
System.out.println("私は" + i + "が好きです。");
super.favarite();
}
}

public class Main {

public static void main(String[] args) {
ClassSub cs = new ClassSub("カレーライス");
cs.favarite();
}

}
<pre>

コンストラクタにカレーライスという文字を設定しています。何も設定しない場合は、スーパークラスをオーバーライドしている

サブクラスのメソッドを呼び出すのですが、今回はコンストラクタメソッド内でsuperメソッドを呼び出しています。このsuperメソッド

は、オーバーライドしているサブクラスのメソッドでないスーパークラスのメソッドを使いたい時に用いるメソッドです。

これを呼び出すことにより、”カレーライス”文字列はスーパークラス・サブクラス二つのクラスのコンストラクタとして初期値に設定され

それぞれ違うメソッドを呼び出すことに成功しています。

 

 

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG