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

関連記事

  1. Java

    Java 2つのリストデータを結合して日付順/昇順/降順(Timestamp )にソートする方法を解…

    それぞれ別のSQLで取得したListを結合して昇順に並び替える方法を紹…

  2. Java

    Java オブジェクト指向の解説・ポリモフィズム(abstract)

    ポリモフィズムは多様性を意味します。傾斜によるメソッドのオーバーラ…

  3. Java

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

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

  4. Java

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

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

  5. Java

    Java 未経験者の転職で有利に!プログラミングスクールがオススメな理由は?比較表で解説!

    経済産業省が発表しているように現在でもIT人材が17万人も不足して…

  6. Java

    Java 文字列を分割後(split)にリスト化(List)する方法も解説

    こちらの記事で文字列を分割後(split)にリスト化(List)する方…

コメント

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

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

Recommended Article

Pickup

  1. News

    Java 9のモジュール機能で何が変わるのか[JavaOne2017]
  2. Servlet・JSP

    Java formの基礎
  3. News

    郵便番号・住所検索用開発ツール「Yubin7 for Java」
  4. Java

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

    JVM上で動く動的言語Groovy、2018年のロードマップは
PAGE TOP

Copyrighted Image