Javaのstaticメソッドを学ぶ
Java初心者の忘備録。
練習問題でmainとは別にメソッドを作った時。
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メソッド内で自クラスのインスタンスを生成する、または引数として受取るのであれば使用可能。
Author And Source
この問題について(Javaのstaticメソッドを学ぶ), 我々は、より多くの情報をここで見つけました https://qiita.com/mpnon/items/2427aa74db0bff031b83著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .