18日目②(2025.02.17) コンストラクタについて



次はコンストラクタです!!

せかチャン 菅原先生!!
今回もよろしくです!!

ということで、まずはコンストラクタの概要から。

【コンストラクタとは】

オブジェクトの初期化のために使われる(オブジェクトを作成するための)特殊なメソッドのこと。

ルール① 名前がクラス名と同じ
ルール② 戻り値を持たない
ルール③ new クラス名(コンストラクタへの引数)

ルール①と②は、メソッドを作る側のルール
ルール③は、コンストラクタを呼び出す側のルール

★コンストラクタもメソッドの一種なので、オーバーロードできる!!

といった感じでした!!


菅原先生が、
「疑問に思った人もいるかもしれませんが」
という前置きと共に説明された、デフォルトコンストラクタについては、
僕は残念なことに何も疑問に思いませんでした、、、

デフォルトコンストラクタ:
オーバーロードの記事の中とかで、
Student stu1 = new Student();
といった感じで書いていましたが、このnew Student();に引数を入れていないのに処理がされていたのは、「デフォルトコンストラクタ」なるものが生成されていたからとのこと。
デフォルトコンストラクタは、引数・処理なしのコンストラクタ。

ということで、またまたStudentのやつでコーディング!!
僕もこれまで約2週間、Tim先生の動画で勉強してきたので、菅原先生のコーディングを見る前に自分でやってみました!!

(class Student)

public class Student{
String name;
int engScore;
int mathScore;
}

public Student(String n,int e,int m){
name = n;
engScore = e;
mathScore = m;
}

public void display(){
System.out.println(name + “さん”);
System.out.println(“英語” + engScore + “点・数学” + mathScore + “点”);
}
}

(メインクラス)
public class main {
public static void main(String[]args)

Student stu1 = new Student(“ス二ゲーター”,80,90);
Student stu2 = new Student(“プラネットマン”,75,100);

stu1.display();
stu2.display();
  }
}

おおー!!
ちゃんと書けた!!!
なんかレベルアップした感じ!!

菅原先生のコードを見ると、「コンストラクタもオーバーロードできるんだよ」という
説明も兼ねていたので、

public class Student {

String name;
int engScore;
int mathScore;



public Student(String n) {
    name = n;

}

public Student(String n,int e,int m) {
    name = n;
    engScore = e;
    mathScore = m;
}

public void setScore(int e, int m) {
    engScore = e;
    mathScore = m;
}



public void  display() {
    System.out.println(name + "さん");
    System.out.println("英語" + engScore + "点・数学" + mathScore + "点");

}
}


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


    Student stu1 = new Student("菅原");

    Student stu2 = new Student("村山",80,100);

    stu1.setScore(80,90);
    stu1.display();
    stu2.display();


}
}



といった感じでした!!


うん、コンストラクタ、理解できた!!




次も楽しんでいこう!!

コメントを残す