次はコンストラクタです!!
せかチャン 菅原先生!!
今回もよろしくです!!
ということで、まずはコンストラクタの概要から。
【コンストラクタとは】
オブジェクトの初期化のために使われる(オブジェクトを作成するための)特殊なメソッドのこと。
ルール① 名前がクラス名と同じ
ルール② 戻り値を持たない
ルール③ 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();
}
}
といった感じでした!!
うん、コンストラクタ、理解できた!!
次も楽しんでいこう!!