はじめに
前回に引き続き、オブジェクト指向をJavaで理解していく。
今回は、オーバロード・コンストラクタ・staticの3つを理解していく。
オーバロード
クラス内に同じ名前で引数の型の数が違うメソッドを複数定義すること
class Student {
void setData(){
}
void setData(String n, int e, int m){
}
}
// 呼び出し
main(){
Student stu = new Student();
stu.setData("菅原");
stu.setData("菅原", 80, 50);
}

同じ名前のメソッドがほしいときに、setData2()とかしなくていいのはいいですよね
呼び出す側にとっても、引数がどれにあたるかなどを判断し呼び出しやすいことがわかります。
コンストラクタ
オブジェクトを初期化するために使われるメソッドのことを指します。
ルールは
呼び出し方は、new クラス名
で呼び出すことができます。
class Student {
Student(String n){
}
Student(String n, int m, int n)
}
main(){
// これまで
Student stu1 = new Student();
stu1.setData("菅原");
// コンストラクタ
Student stu1 = new Student("菅原");
}

いちいち、newしてメソッドを呼びださなくていいのは楽ですよね
static
全インスタンス変数が使えるメンバ変数やメソッドを定義するにはstatic
を指定する。
static
を付与すると、クラスをインスタンス化しなくてもアクセスできるようになります。
class Hero {
String name;
int hp;
static String ability;
static void attack(){
System.out.println("攻撃する")
}
}
public static void main(String[] args){
System.out.println(Hero.ability); // 静的フィールド
Hero.attack(); // 静的メソッド
}
static
で指定したフィールドは静的フィールドとよばれ、static
で指定したメソッドは静的メソッドと呼ばれる。
thisにはアクセスできない
静的メソッドでは、インスタンスはなくインスタンスを示すthisにもアクセスできません。
おわりに
オーバーロード・コンストラクタ・staticについて学んでいきました。
次回は継承について学んでいきましょう。
コメント