見出し画像

コンストラクタ

前回、オーバーロードを学習しました。

この方法をちょっと変えた感じ?のメソッドがコンストラクタです。
オブジェクトの初期化のために使われる特殊なメソッドです。

メソッドのルール

このコンストラクタのメソッドには、ルールが3つあります。

ルール1:名前がクラス名と同じ

ルール2:戻り値を持たない

ルール3:new クラス名(コンストラクタへの引数)

オーバーロードと比較で一発で分かる

※これはオーバーロードの書き方です。

メインメソッド(抜粋)
 Student stu = new Student ( ) ;
 stu . setData ( "菅原" ) ;
 stu . setData( "菅原" , 80 , 90 ) ;

設計図(抜粋)
 void setData ( String n ) {
  ・・・}
 void setData ( String n , int e , int m) {
  ・・・}

※これは、コンストラクタの書き方です。

メインメソッド(抜粋)
 Student stu1 = new Student ( "菅原" ) ;
 Student stu2 = new Student ( "菅原" , 80 , 90 ) ;

設計図(抜粋)
 class Student {
  Student ( String n ){
  ・・・}
  Student ( String n , int e , int m) {
  ・・・}
 }

void setDataというのが、Studentだけに置き換わっていますね。
オブジェクトの生成と、代入をいっぺんにできるのが、このコンストラクタです。
オーバーロードでは、生徒像をつくって、そこからデータを設定していく、という流れで、コンストラクタでは、データ付きの生徒像をまとめてつくっていく、といったイメージです。
尚、引数なしのコンストラクタ(Student stu3 = new Student (  ) ;】を作るとコンパイルエラーになります。なので、対策としてはそもそも作らないようにすること、もしくは設計図で引数なしのコンストラクタを作っておくことが挙げられます。


いいなと思ったら応援しよう!