Java

Java コンストラクタの使い方と概要

コンストラクタとは
生まれたてのインスタンスの状態を表します。

インスタンス化と同時に、生成されるオブジェクトに対して
行っておきたい処理を記述します。

この処理はインスタンス化された直後に実行される処理になります。

コンストラクタと見なされる条件

  • メソッド名がクラスメイト完全に同じである
  • メソッド宣言に戻り値の記述がない(voidも✕)

コンストラクタを使用した場合と使用しない場合で解説します。

SPONSORED LINK

コンストラクタを使用しない場合

コンストラクタを使用した場合①

newされると自動的に実行されてdoorNumに4が代入されています。
その為、mainメソッドで初期値を代入する必要がなくなります。

改行

コンストラクタに情報を渡す方法

固定値で初期化をしたい場合(ここでは車のドアの数)は、単純なコンストラクタで可能でしたが、車種名は
生成するインスタンスによって異なります。
このような場合は、コンストラクタが引数で受けてれるように宣言します。

コンストラクタを使用した場合②

コンスタラクタに渡すべき引数をnewする際に指定することで、
newした時点で与えらた引数がコンストラクタが自動実行される際にパラメータとして渡されます。

SPONSORED LINK

改行

2つ以上の同名コンストラクタの定義する方法

「引数を受け取るコンストラクタ」と
「引数を受けとrならいコンストラクタ」を同時に定義することで
複数のコンストラクタを使い分けることが可能です。

コンストラクタを使用した場合③

コンストラクタをオーバーロードすることで複数のコンストラクタを定義できます。
複数コンストラクタが定義されていた場合は、
newするときに渡した引数の型・数・順番 対応するコンストラクタが動作します。
その際、複数のコンストラクタが定義されていても、1つだけしか動作しません。

オーバーロードについての使い方や解説方法はこちら

すべてのクラスはインスタンス化する際必ず何らかのコンストラクタを実行する決まりになっています。
それなので本来は「引数のない、何も処理をしないコンストラクタ」を定義しなければなりません。 しかし、コンストラクタの特例があり
クラスに1つもコンストラクタが定義されていない場合に限って
「引数なし、処理内容なし」のコンストラクタの定義がコンパイル時に自動的についかされています。

その為、通常のインスタンス生成が可能になります。

SPONSORED LINK

改行

別コンストラクタを呼び出す

重複する内容がある場合は、
初期値を変更する際に
「すべての重複する部分を変更する」必要がでてきます。

また本格的なプログラムになると
重複部分が多くなることが一般的ですので、
そうなると修正が大変になってしまい、
ミスにもつながります。

Javaではコンストラクタを直接呼び出すことができないので、
「専用の文法を用いてカンストラクタの先頭で別のコンストラクタを呼び出す場合」
に限って特別に許されています。

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

  • this.クラス名(引数); ✕
  • this(引数); ○

別コンストラクの呼び出しの場合

「this.メンバ名」のthisは自身のインスタンスを表す。
「this(引数)」のthis()は同一クラスの別のコンストラクタを呼び出す。

SPONSORED LINK

ピックアップ記事

  1. Java 9が正式リリース
  2. Java入門 JavaプラットフォームやJava言語の仕組み
  3. Java クラスのインスタンス化・初期化とは?

関連記事

  1. Java

    Java String型の文字列をint型の数値に変換する方法を解説

    こちらの記事でString型の文字列をint型の数値に変換する方法を応…

  2. Java

    Java リスト(list)を分割(一度に処理を行う)し代入する方法を解説

    こちらの記事でリスト(list)を分割(一度に処理を行う)し代入する方…

  3. Java

    Java プロパティファイル(property)の作成と読み込み、編集方法、配置先の解説

    こちらの記事でプロパティファイル(property)の使い方を応用して…

  4. Java

    Java JREとJDKの違いと関係性は!?環境変数設定と確認までの手順解説!!

    そもそも、JREとJDKの違いを人に説明できますか?Javaのプロ…

  5. Java

    Java Template Method デザインパターン(abstract)の使い方や特徴を具体的…

    テンプレートの機能を持つ スーパークラス(親)の方にテン…

  6. Java

    Java オブジェクト指向の解説・継承

    処理を受け継ぐ「継承」とは以前作成したクラスと似通ったクラスを作成…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

Recommended Article

Pickup

  1. Bronze

    Java オブジェクト指向の解説・カプセル化
  2. Java

    Eclipse Javaプロジェクトの作成と初期設定を解説!!ビルド(build…
  3. Java

    Java オブジェクト指向の解説・継承
  4. Eclipse

    Eclipse 背景色を黒(ダーク)に設定する方法を解説!
  5. Java

    Java Template Method デザインパターン(abstract)の…
PAGE TOP

Copyrighted Image