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

Java の静的メソッドから非静的変数にアクセスできないのはなぜですか?

Barbara Streisand
リリース: 2024-12-30 18:54:09
オリジナル
836 人が閲覧しました

Why Can't I Access a Non-Static Variable from a Static Method in Java?

エラー: 静的コンテキストから非静的変数を参照することはできません

コード内でクラス変数 count を宣言し、次の操作を試みます。静的メソッド main 内でアクセスします。このエラーは、非静的コンテキスト内で宣言された変数を静的コンテキストから直接参照できないために発生します。

静的コンテキストと非静的コンテキストについて:

  • 静的コンテキスト: 特定のインスタンスから独立したクラス自体を指します。静的メソッドと変数は、個々のインスタンスではなく、クラスに属します。
  • 非静的コンテキスト: クラスの特定のインスタンスを参照します。非静的メソッドと変数はオブジェクトに属し、インスタンスによって異なります。

この例では、count は非静的変数であり、MyProgram クラスの各インスタンスに固有であることを意味します。このエラーを修正するには、MyProgram のインスタンスを作成し、その非静的メソッド内でカウントにアクセスする必要があります。

解決策:

  1. MyProgram クラスのインスタンスを作成します:
MyProgram obj = new MyProgram();
ログイン後にコピー
  1. 非静的内のアクセス数メソッド:
public void run() {
    System.out.println(count);
}
ログイン後にコピー
  1. メイン メソッドから run メソッドを呼び出します:
public static void main(String[] args) {
    MyProgram obj = new MyProgram();
    obj.run();
}
ログイン後にコピー

次の手順に従うことで、非静的であることを確認します。変数 count は非静的コンテキスト内でアクセスされます。

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

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