Class・Object

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

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

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

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

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

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

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

SPONSORED LINK

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

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

newされると自動的に実行されて
doorNumに4が代入されています。

その為、mainメソッドで
初期値を代入する必要がなくなります。

SPONSORED LINK

改行

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

固定値で初期化をしたい場合
(ここでは車のドアの数)は、
単純なコンストラクタで可能でした。

しかし車種名の場合は
生成するインスタンスによって異なります。

このような場合は、コンストラクタが
引数で受けてれるように宣言します。

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

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

SPONSORED LINK

改行

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

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

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

コンストラクタをオーバーロードすることで
複数のコンストラクタを定義できます。

複数コンストラクタが定義されていた場合は、
>newするときに渡した引数の型・数・順番
対応するコンストラクタが動作します。

複数のコンストラクタが定義されていても、
1つだけしか動作しません。

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

すべてのクラスはインスタンス化する際
必ず何らかのコンストラクタを
実行する決まりになっています。

上記のことから
引数のない何も処理をしないコンストラクタ
を定義しなければなりません。

コンストラクタの特例
クラスに1つもコンストラクタが
定義されていない場合に限って
「引数なし、処理内容なし」の
コンストラクタ定義が
コンパイル時に自動的に追加される。

このコンストラクタの特例によって、
通常のインスタンス生成が可能になります。

SPONSORED LINK

改行

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

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

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

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

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

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

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

「this.メンバ名」のthisは
自身のインスタンスを表す。

「this(引数)」のthis()は
同一クラスの別のコンストラクタを呼び出す。

SPONSORED LINK

Linuxコマンド【ls】カレントディレクトリの一覧を表示するコマンド前のページ

Linuxコマンド【cd】ディレクトリを移動・変更するコマンド次のページ

ピックアップ記事

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

関連記事

  1. Class・Object

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

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

  2. Class・Object

    Java オブジェクト指向とは?初心者向けにわかりやすい概要!!

    オブジェクト指向の特徴は開発対象となるシステム化対象領域を、「…

  3. Class・Object

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

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

  4. Class・Object

    Java ファイルやディレクトリの存在チェック(exists)とパターンを解説

    こちらの記事でファイルやディレクトリの存在チェック(exists)を応…

  5. Class・Object

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

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

  6. Class・Object

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

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

コメント

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

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

Recommended Article

Pickup

  1. Basic

    Java入門 JavaプラットフォームやJava言語の仕組み
  2. コマンド

    Linuxコマンド【which】コマンドの実行ファイルをフルパスで表示するコマン…
  3. News

    脆弱性が多いプログラミング言語、第2位はPHP – 大差で第1位にな…
  4. 文字列

    Java String型の文字列をint型の数値に変換する方法を解説
  5. コマンド

    Linuxコマンド【cp】ファイルやディレクトリをコピーするコマンド
PAGE TOP

Copyrighted Image