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

関連記事

  1. Java

    Java switch文の使い方とdefaultとbreakの役割と関係性を解説

    こちらの記事でswitch文の応用しています。Java Templ…

  2. Java

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

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

  3. Basic

    Java EclipseにTomcat(Java EEの開発環境)を設定する手順

    Java EEの開発に必要なものは、大きく分けて以下の3つになっていま…

  4. Java

    Java String型とDate型の変換・Calendarの関係性

    現場でも使用頻度が非常に高い日付を扱ったソースについて解説していき…

  5. Basic

    Java Loggerの使い方や出力先の設定、レベルでログを振り分ける設定も解説

    こちらの記事でLoggerの使い方を応用しています。Java Te…

  6. Java

    Java プロパティファイルを使ってテキスト(txt)出力ファイルの書き込みとパターンを解説

    こちらの記事でプロパティファイルを使って出力ファイルの書き込みを応用し…

コメント

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

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

Recommended Article

Pickup

  1. Eclipse

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

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

    Java 出力文字を英語や指定してた言語に変換する方法を解説
  4. SQL

    SQL データベースの基礎知識
  5. Spring

    Spring MyBatisのSQLでLIKEを使用する方法
PAGE TOP

Copyrighted Image