LoginSignup
0
0

More than 3 years have passed since last update.

static メソッド、非 static メソッドについて

Posted at

■ static 修飾子とは

static 修飾子とは、インスタンスを通してではなく、クラス(属するクラス、そうでないクラスともに)から直接呼び出すことができるようになる修飾子

Java のクラスが持つことができるメソッドは主に2つ、static メソッド(クラスメソッド)と非 static メソッド、(インスタンスメソッド)である

インスタンスメソッドは、その振る舞いを持っているインスタンスを生成して呼び出す、言わばインスタンスに動いてもらう、というイメージだが、クラスメソッドはその名の通りクラスに直接属している(クラスの持ち物)

クラスメソッド内ではインスタンスに属するもの(インスタンスの持ち物)は一切参照できない、つまりインスタンスのフィールド、メソッド、同一クラス内の非 static なメソッド、this、super は使用できない(自クラスのインスタンスを生成して使用することは可能) static フィールドや他の static メソッド、引数を利用する

クラスの持ち物であるため、呼び出すときは原則として クラス名. static メソッド名 と指定する(その static メソッドを宣言しているクラス内、およびサブクラス内であればクラス名は不要)

■ 注意点

・インスタンスメソッドと同じシグネチャにはできない
・アクセス修飾子はインスタンスメソッドと同じにする
・ abstract にできない
・継承されない(static メソッドはオーバーライドできない)

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0