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入門 JavaプラットフォームやJava言語の仕組み
  3. Java 9が正式リリース

関連記事

  1. Java

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

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

  2. Java

    Java インストールしたJREとEclipseを連動させる(設定)手順を解説!!

    JREはJavaプログラムの実行環境です。一般ユーザはJavaアプ…

  3. Java

    Java yyyyMMddからyyyy/MM/ddへ変換して日付判定する方法

    データベースから日付情報A(char長8)の文字列を取得して日付の判定…

  4. Java

    Java StringBuilderの使い方・文字列の連結

    Java StringBuilderの使い方・文字列の連結2つ…

  5. Java

    Javaプログラムの作成とルール

    Java言語でルールに従って、テキストファイルに記述します。プログ…

  6. Java

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

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

コメント

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

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

Recommended Article

Pickup

  1. News

    MicrosoftがJava EEからクラウドへのマイグレーションを調査,Jav…
  2. News

    Javaが更に進化!? 今後の日本生活に貢献する役割を担う!
  3. Java

    Java Template Method デザインパターン(abstract)の…
  4. Bronze

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

    Java プロパティファイルを使ってテキスト(txt)出力ファイルの書き込みとパ…
PAGE TOP

Copyrighted Image