Java

コンストラクタの機能

メリット;クラスを使う側が楽になる。
コンストラクタがないと、
クラスを基にオブジェクトを生成して初期化するのに最低2行必要。下記は例。

Rectangle s3 = new Rectangle();
s3.setData(15,7);

コンストラクタがあると、1行で書ける。

Rectangle s3 = new Rectangle(15,7);

コンストラクタの構文

メソッドに似ているが、戻り値の型はない。メソッド名にあたる部分はクラス名と同じことが条件。

注意点

明示的にコンストラクタを作らなかった場合は、コンパイラが引数なしコンストラクタを自動追加する。
明示的にコンストラクタを作ると、引数なしのコンストラクタは自動的には作られない。
→場合に応じてデフォルトコンストラクタを作成する。
コンストラクタはオーバーロードできる。

カプセル化

より安全なクラスを作るため、カプセル化をする。
一般的にはフィールドにprivate修飾子を指定し、フィールドに直接アクセスできないようにする。
その代わり、値の設定や取り出しのためにセッター・ゲッター(アクセッサ―)をpublic指定で用意する。

thisキーワード

コンストラクタをつかう側が引数に何を入れるかわかるように、コンストラクタの引数名をフィールド名に合わせたい。
this.を使う。

public Day(int year, int month, int date){
          this.year = year;
          this.month = month;
          this.date = date;
}

コンストラクタのオーバーロードをしている場合、
引数3つのコンストラクタでエラーチェックやフィールドへの代入をしている。
→引数2つのコンストラクタではthis()を使って引数3つのコンストラクタを呼び出すことができる。

Day(int year, int month){
        this(year, month, 1);
}

エラーチェックやフィールドへの代入は一箇所で行うことができる。

クラス変数

インスタンスごとに変わるのではなく全体としての変数
インスタンス生成時にインクリメントすることで、累積数が表示できる。

コメント

タイトルとURLをコピーしました