2017-05-07 18 views
0

静的変数はクラスの一部であり、オブジェクトの一部ではないことがわかります。どのようにすることができます任意の問題Javaの静的変数

class M 
{ 
    static int i=0; 
    void Inc() 
    { 
    System.out.println("Global "+M.i); 
    System.out.println("Local "+this.i); 
    } 
}  

public class StaticTest 
{ 
    public static void main(String args[]) 
    { 
    M m1=new M(); 
    m1.i=99;  //How can the m1 object access i variable of the class 
    m1.Inc(); 
    } 
} 

私が手出力が

Global 99 
Local 99 

あるなしにコードの作業の次の行どのようにすることができますクラスのM1オブジェクトアクセス変数i?

+0

すべてのインスタンス変数は、その静的変数を共有します。あなたは間違ってそれを参照しましたが、まだ実行されています –

+0

http://stackoverflow.com/questions/17242649/can-non-static-methods-modify-static-variables –

答えて

1

どちらも非常に同じiです。

残念ながらでは、javaはnon-static構文を使用して静的フィールドにアクセスできます。

これはすべてこれの背後にあるものです。

0

はい、非静的メンバーは静的メンバーにアクセスして更新できます。

詳細はこちらhere