プログラミング

【Java初心者向け】コンストラクタを学ぼう!this、superなどもわかりやすく解説!

プログラミング
この記事は約3分で読めます。
Sponsored Links

コンストラクタとは

赤ちゃんのおもちゃ, ゴム製のアヒル, あひる, おもちゃのボート, おもちゃ, 入浴プール, 水, 赤ちゃん

コンストラクタとは、インスタンスを作成したときに自動的に実行されるメソッドのことです。特別なメソッドなので、newと併用する以外では使用することができません。

コンストラクタの定義

楽器, シンバル, 音楽, 子ども部屋, おもちゃ, 着メロ, メロディー, 色, 科学, 楽しい, ルーム
public class SampleClass {
  private String str;

  //コンストラクタ
  public SampleClassConstractor(){
  //処理内容
  }

 //引数ありコンストラクタ
  public SampleClassConstractor(String str){
  //処理内容
  }

}

 

次にコンストラクタの定義方法を説明します。sampleClassConstractorと書いてある部分がコンストラクタです。コンストラクタは「アクセス修飾子 コンストラクタ名」で定義し、コンストラクタ名はクラス名と必ず同じでなくてはならないというルールがあります。また、returnでデータを返すことはできません。コンストラクタはメソッド同様に引数を持つことができます。

インスタンス生成時に引数を持たせることで呼び出したいコンストラクタを変えることができるので、有効活用しましょう。

デフォルトコンストラクタとは

ビルディング ブロック, 石, カラフル, おもちゃ, 子, 建設、おもちゃ, クラッタ, 木, 組み立てる
public class SampleClass {

  //デフォルトコンストラクタ
  public SampleClass(){

  }
}

次にデフォルトコンストラクタについて学習していきましょう。クラスにコンストラクタを記述せずに、インスタンス生成をした場合は「デフォルトコンストラクタ」と呼ばれるコンストラクタが自動生成されます。デフォルトコンストラクタは引数を持たないコンストラクタで、中身の処理も空の状態です。コンストラクタを定義していた場合は、デフォルトコンストラクタは自動生成されないので気を付けましょう。

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

鴨応, アヒル, ゴム製のアヒル, プラスチック鴨, ダックレース, 競争, おもちゃ, 黄色鴨, レース
public class SampleClass {
  private String str;

  //コンストラクタ
  public SampleClassConstractor(){
  //処理内容
  }

 //引数ありコンストラクタ
  public SampleClassConstractor(String str){
  this();
  }

}

同じクラスに定義されたコンストラクタを呼ぶ場合は、「this」を使用します。この時、コンストラクタ名は使用しません。「this.SampleClassConstractor();」と記述してしまうと、SampleClassConstractor()というメソッドを呼び出すことになるので、間違わないように注意しましょう。また、コンストラクタを呼び出す際は、コンストラクタの最初に記載しなくてはなりません。呼び出しの前に何か記述してしまうと、コンパイルエラーとなるので気をつけましょう。

コンストラクタが複数個ある(オーバーロード)場合も引数で見分けることができるので、「同じクラスのコンストラクタの呼び出しはthis」で覚えましょう。

初期化ブロック

子, ゲーム, 平和, 人, 人間, 乳幼児, 少年, 赤ちゃん, 笑う, 子供, おもちゃ, 航空機
public class SampleClass {
  {
  //初期化ブロックの処理内容
  }
}

初期化ブロックは、「全てのコンストラクタで共通して前処理を行いたい場合」に使用します。初期化ブロックは、クラスブロック直下に「{}」を使って定義し、実行タイミングはコンストラクタの実行前です。

実行タイミングなどはテストに出ることがあるのでしっかり押さえておくようにしましょう!

最後に

コンストラクタは有効に使えば処理を一気に減らすことのできる便利アイテムです。しっかり利用方法を理解して有効に使うようにしましょう!

タイトルとURLをコピーしました