2016-09-02 27 views
-1

私はしばらくのうちにJavaでプログラミングしていませんが、これを理解しようとしましたができませんでした。クラス変数が更新されない

クラス変数を宣言して更新して印刷しようとすると、変数はnullから変更されません。誰かが私が間違っていることを教えてもらえますか?これをテストするために入力したコードは次のとおりです。私は、メソッドを呼び出すと、右の変数を取得しますが、そのそれを印刷するときだけ、それはまだ0に設定されたクラス変数を呼び出すときに、print文の前にメソッドの呼び出しを必要とする

package test; 

public class method { 

    public static int z ; 

    public method(){ 

    } 

    public static void setZ(int z){ 
     method.z = z; 
    } 

    public static int getZ(){ 
     return method.z; 
    } 

    public static int add(int z){ 
     method.z = 15; 
     return method.z; 
    } 
    public static void main(String[] args) { 
     System.out.println(z); 
    } 
} 
+0

zはクラスvalriableであり、すべてのオブジェクトはデフォルトでnullになり、int、longなどのプリミティブは0になります。そのメソッドを呼び出すと、zに値が割り当てられます。 int。 – SpringLearner

+0

実際にあなたのメソッド呼び出しはどこですか?この場合、int変数のデフォルト値を出力するだけです。 –

+0

あなたは決して(クラス)メソッドを呼び出さないので、zは0です。たとえば、印刷する前に 'method.setZ(10)'を試してみてください。 –

答えて

3

あなたが助けてくれてありがとう

package test; 

public class method { 

    public static int z ; 

    public method(){ 

    } 

    public static void setZ(int z){ 
     method.z = z; 
    } 

    public static int getZ(){ 
     return method.z; 
    } 

    public static int add(int z){ 
     method.z = 15; 
     return method.z; 
    } 
    public static void main(String[] args) { 
     setZ(10); 
     System.out.println(z); 
    } 
} 
関連する問題