≪Java≫ コンストラクタを書く場合、書かない場合

≪Java≫ コンストラクタを書く場合、書かない場合

【コンストラクタを書かない場合】
 ※自前のコンストラクタを書かない場合でも、(見えていないが)デフォルトコンストラクタがあるため、①・②の書き方ができる。
 デフォルトコンストラクタ =>  public Music(){}

↓ ①・②の部分で値を入れると、自前のコンストラクタがないのでコンパイルエラーとなる。

public class Music {

 String title;
 String artist;
 int price;

}

public class ExecMusic {
 public static void main(String[] args) {

  // オブジェクトを作成する
  Music donguri = new Music(); ⇒①
  Music syabon = new Music(); ⇒②

  // フィールドに値を代入する
  donguri.title = “どんぐりころころ”;
  donguri.artist = “梁田 貞”;
  donguri.price = 1200;

  syabon.title = “シャボン玉”;
  syabon.artist = “中山 晋平”;
  syabon.price = 1000;

  // フィールドを表示する
  System.out.println(“曲名: ” + donguri.title);
  System.out.println(“作者: ” + donguri.artist);
  System.out.println(“価格: ” + donguri.price);

  System.out.println(“曲名: ” + syabon.title);
  System.out.println(“作者: ” + syabon.artist);
  System.out.println(“価格: ” + syabon.price);

  }
}

【コンストラクタを書く場合】
↓ 自前のコンストラクタを書くとデフォルトのコンストラクタがなくなるので、①・②で値を入れないとコンストラクタが未定義としてコンパイルエラーとなる

public class Music {

 String title;
 String artist;
 int price;


 //コンストラクタ
 public Music(String t, String a, int p){

  title = t;
  artist = a;
  price = p;
  }

}

public class ExecMusic {
 public static void main(String[] args) {

  // オブジェクトを作成する
  Music donguri = new Music( “どんぐりころころ” , “梁田 貞” , 1200 ); ⇒①
  Music syabon =  new Music( “シャボン玉” , “中山 晋平” , 1000 ); ⇒②

  // フィールドを表示する
  System.out.println(“曲名: ” + donguri.title);
  System.out.println(“作者: ” + donguri.artist);
  System.out.println(“価格: ” + donguri.price);

  System.out.println(“曲名: ” + syabon.title);
  System.out.println(“作者: ” + syabon.artist);
  System.out.println(“価格: ” + syabon.price);

  }
}

ただし、【コンストラクタを書く場合】においても、コンストラクタを書くクラスに、デフォルトコンストラクタ

 public Music(){}

を追記すると、(コンストラクタをオーバーロードすると)

【コンストラクタを書かない場合】のように

  Music donguri = new Music();
と宣言してから、

  donguri.title = “どんぐりころころ”;
  donguri.artist = “梁田 貞”;
  donguri.price = 1200;
とフィールドに値を代入しても、コンパイルエラーにはならない。



引っ越し前の記事
シェアする
senをフォローする
プレミア商品・お得商品情報局(予約・再販情報も)


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