コンストラクタとは vol.42
今回はコンストラクタについて、覚えてほしいことはことはがインスタンスとフィールドと何が違うかについてだ。
私は一時期インスタンスとコンストラクタは同じものだと思っていたことがあったが、違うということを知っていただきたい。
インスタンスについてはこちら。
1.コンストラクタとは
インスタンスの生成時(ほかのクラスを呼び出すためにnewしたとき)にそのタイミングで最初に行う処理のこと。
初期化の処理ともいえる。
例を挙げてみてみよう。
2.例
フィールドと同じ位置に戻り値のない、修飾子と名前のみもメソッドのようなものがある。
これがコンストラクタ。
実際にMainクラスでnewしてみるとどうなるのか。
いつもだとnewした後にこの場合だと、クラス型変数のconに.(ドット)とConstructorクラスのメソッド名を書き処理を行うのだが、今回はコンストラクタがわかりやすいようにnewのみを書いた。
そうすると、コンソールに表示されたのはConstructorクラスで書いたコンストラクタの処理のみ。
このようにインスタンスの生成(new)と同時に行われる処理がコンストラクタである。
3.コンストラクタの条件
コンストラクタには条件がある。
二つの条件がそろっていないとコンストラクタと認識されない。
1.コンストラクタメソッド名とクラス名が完全に一致
今回で言うConstructorクラスのコンストラクタの名前はConstructorで一致している。
2.メソッドに戻り値(データ型、voidやintなど)が無いこと。
今回のpublic Constructorの様に戻り値は来てはいけない。書くとただのメソッドになる。
ちなみにpublicをprivateに変えるとえらが起こる。
呼び出される側では問題ないが
呼び出す側でエラーとなってしまう。
これがコンストラクタの条件だ。
4.インスタンスやフィールドとの違い
コンストラクタのはインスタンス生成(new)と同時に初期的に行われるもののこと。
フィールドとの違いは、コンストラクタはnewされたときのみに行う処理だが、フィールドは何度も使いまわせる。
以上だ。
今回は短いが以上。
では、また次回
元体育会系文系エンジニア石黒