【C#入門】カプセル化(コンストラクター、thisワード)について分かりやすいサンプルコードで徹底解説②

「カプセル化」の続きです。
今回はコンストラクター、thisワードについて紹介します。

コンストラクター

カプセル化は実装できましたが、インスタンスを生成した直後にPowerとVolumnに値を設定する方法がなくなってしまいました。
このようなときに利用するのが、「コンストラクター」と呼ばれるクラスの初期化メソッドです。
コンストラクターは ルドやプロバティのインスタンスの生成時に一度だけ呼び出され、フィールドやプロパティの初期化などを行います。

• コンストラクターの定義

コンストラクターの記述には次のような特徴があります。

● コンストラクター名はクラス名と同じにする
● 戻り値はない(voidは書かない)
● アクセス修飾子は通常「public」にする

コンストラクターは、クラスからインスタンスをnew演算子で生成するときに 呼び出されます。

• コンストラクターの呼び出し

実は、これまで説明に用いてきたTalevisionクラスのように、コンストラクター
を記述しない場合でも、インスタンスを生成する際に、コンパイラが何も行わない引数なしのデフォルトのコンストラクターを呼び出していたのです。
では、Televisionクラスにコンストラクターを追加します。コンストラクターにもメソッドのオーバーロードを適用することができるので、 今回は3種類のコンストラクターを記述することにします。

メインメソッドも以下のように書き換えます。インスタンスを2個生成し、それぞれ引数の違うコンストラクターを呼び出しています。なお、コード中の「?;」は「条件演算子」です。

コンストラクター後の実行結果

thisキーワード

thisキーワード」は、クラスの現在のインスタンスを参照するもので、 自身のメンバーを参照する場合などに使用されます。

● フィールド名と引数名が同じ場合

● 自分自身のコンストラクターに引数を渡す場合

Writer
壷井

壷井

株式会社flyhawkの壷井です。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。

最新の案件情報

フリーランスエンジニアの案件探し