LoginSignup
0
1

More than 3 years have passed since last update.

Javaのstaticメソッドを学ぶ

Last updated at Posted at 2019-11-07

Java初心者の忘備録。

練習問題でmainとは別にメソッドを作った時。

main.java
class Main {
  public static void main(String[] args) {
    Person person = new Person;
    中略
    printData(person);
  }
  public static void printData(Person person) {
    System.out.println(person.firstName + person.lastName);
  }
}

あれ、このprintDataメソッドに付くstatic修飾子はどんな意味を持つんだったろうか?と思い調べた。

staticメソッドはクラスメソッド

Javaのメソッドは必ずクラスかインスタンスに属する。
staticメソッド(クラスメソッドとも呼ぶ)はクラスが持ち、クラスが実行するメソッドのこと。
インスタンスメソッドは、インスタンスが持ち、インスタンスが実行するメソッドのこと。

練習問題のprintDataメソッドの場合、Mainクラスに属するstaticメソッドとなる。

staticメソッドのアクセス範囲

staticメソッドを実行するクラス自体はインスタンスではないため、staticメソッドからインスタンスに属するフィールドやメソッド、staticではない内部クラスを使うことはできない。
staticメソッドで扱えるのはstaticフィールドや他のstaticメソッド、引数を使ったプログラムとなる。

※インスタンスが持つフィールド・メソッドにアクセスしたい場合
インスタンスに属するものは直接参照できないが、staticメソッド内で自クラスのインスタンスを生成する、または引数として受取るのであれば使用可能。

0
1
0

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
1