Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Javaのstaticメソッドを学ぶ

More than 1 year has passed since last update.

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メソッド内で自クラスのインスタンスを生成する、または引数として受取るのであれば使用可能。

mpnon
ITベンダーに入ったら、プログラミングより調整役が得意になってしまったシステム屋さん。(早5年目くらい) フルスタックなエンジニアを目指すべく、日々コツコツ勉強中。 競プロに興味あり。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away