2016-10-06 12 views
2

にパラメータとして公共の静的変数を受け入れるために、私はインスタンス化された変数どのようにJavaの

public static int r1 = 10; 

を以下している私は、これらの変数r1のいくつか持っている - r4を、私が取ることができるようになります方法を書きたいです変数r1をメソッドのパラメータとして使用し、それをインクリメントします。

擬似コードは次のようになります。

r1 = r1 + 1; 

私の質問は、私が代わりにこれを達成するために4つの異なるメソッドを記述する1つの方法のパラメータとして変数を取ることができる方法ですか?

+0

'これを達成するための4つの異なるメソッドを書くのではなく、...どこに4つのメソッドがありますか? –

+0

メソッドの中で単に 'YourClassName.r1'を使わないのはなぜですか? 'public static'変数に渡すパラメータは必要ありません。 – Arvind

答えて

3

Javaでは、参照によってプリミティブ型の変数を渡すことはできないため、できません。

あなたは配列にあなたの変数を入れて、配列とインデックスを渡すことができます。

public static int[] r = new int[4]; 
... 
public static void modify(int[] array, int pos) { 
    array[pos]++; 
} 
... 
modify(MyClass.r, 1); // instead of modify(MyClass.r1); 

別のアプローチは、発信者に変更された値を返し、彼らが戻ってそれを割り当てるようにすることです:

public static int modify(int orig) { 
    return orig+1; 
} 
... 
MyClass.r1 = modify(MyClass.r1);