【初学者向け】オブジェクト指向をJavaで理解する vol.2

IT

はじめに

前回に引き続き、オブジェクト指向を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について学んでいきました。

次回は継承について学んでいきましょう。

コメント

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