ホームページ > Java > &#&チュートリアル > Java では静的メソッドが非静的フィールドにアクセスできないのはなぜですか?

Java では静的メソッドが非静的フィールドにアクセスできないのはなぜですか?

Susan Sarandon
リリース: 2024-10-31 06:55:02
オリジナル
921 人が閲覧しました

Why Can't a Static Method Access a Non-Static Field in Java?

静的メソッドからの非静的フィールド参照

Java では、非静的フィールドまたはメソッドに対して静的参照を行うことはできません。これは、非静的フィールドやメソッドとは異なり、静的要素はクラスのインスタンスとは独立して存在するためです。

次のコードを考えてみましょう。

public class NonStaticFieldReference {

    private float r; // Non-static field

    public static void main(String[] args) {
        System.out.println(r); // Error!
        c_area(); // Error!
    }

    private static void c_area() {
        // Cannot reference non-static field r from static method
    }
}
ログイン後にコピー

この例では、main( ) メソッドは静的です。つまり、非静的フィールド 'r' にアクセスできません。同様に、静的メソッド c_area() は、非静的フィールド 'r' にアクセスできません。

解決策

この問題を解決するには、クラスのインスタンスを作成し、そのインスタンスを通じて非静的フィールドとメソッドにアクセスします。

public class NonStaticFieldReference {

    private float r; // Non-static field

    public static void main(String[] args) {
        NonStaticFieldReference instance = new NonStaticFieldReference();
        instance.r = 5;
        instance.c_area();
    }

    private void c_area() {
        // Access non-static field r from non-static method
    }
}
ログイン後にコピー

このようにして、非静的フィールド 'r' はクラスのオブジェクトを通じてアクセスされ、適切なフィールド参照が可能になります。

以上がJava では静的メソッドが非静的フィールドにアクセスできないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート