Java で「非静的フィールド/メソッドへの静的参照を作成できない」を理解する
Java で「作成できません」というエラーが発生する非静的フィールドへの静的参照」または「非静的メソッドへの静的参照を作成できません」は、コード内の静的要素と非静的要素の間の相互作用により、特定のアクションが制限されていることを示します。
エラーの原因
このエラーは、静的メソッド内など、静的コンテキスト内のインスタンス (非静的) フィールドまたはメソッドにアクセスしようとすると発生します。インスタンス変数はクラスの特定のオブジェクトに関連付けられますが、静的変数とメソッドはクラス自体に属し、オブジェクト インスタンスを必要としません。
解決策: インスタンスを作成する
このエラーを解決するには、インスタンス変数にアクセスしたり、インスタンス メソッドを呼び出したりする前に、クラスのインスタンスを作成する必要があります。これは、インスタンス変数とメソッドに静的コンテキストから直接アクセスできないためです。
たとえば、提供されたコード スニペットでは、静的メソッド main はインスタンス変数 r、cfr、および area にもアクセスしようとします。インスタンスメソッド c_cfr および c_area として。これを修正するには、メイン メソッド内で Cercio クラスのインスタンスを作成し、オブジェクト参照を通じてインスタンス変数とメソッドにアクセスします。
<code class="java">public static void main(String[] args) { Cerchio cerchio = new Cerchio(); cerchio.r = 5; cerchio.c_cfr(); cerchio.c_area(); System.out.println("The cir is: " + cerchio.cfr); System.out.println("The area is: " + cerchio.area); }</code>
補足
以上がJava で「非静的フィールド/メソッドへの静的参照を作成できません」というメッセージが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。