2016-09-23 6 views
0

質問クラスにグローバル変数があり、イベントハンドラでこれらの値をインクリメントします。私は静的メソッドDetails()を含む別のクラスのUserを持っています。私は、UserクラスのDetails()にイベントハンドラからこの2つの変数の値(単位後)を渡したい:別のクラスメソッドに値を転送する方法

public class Question { 

    public int phCounter = 0; 
    public int chemCounter = 0; 

    private void CategoryCbActionPerformed(java.awt.event.ActionEvent evt) { 

     phCounter++; 
     chemCounter++; 
    } 
} 

...

public class User { 

    static void Details() { 
     public counter ; 
    } 

} 

私の質問はどのような方法があり、以外値をDetails()への引数として送信し、これらの値をDetails()メソッド内に挿入することができます。

+0

を呼び出しません。他のクラスが変数を使用するようにするには、それらをメソッド/コンストラクタのパラメータとして渡します。 – Stultuske

+0

'public counter;は何ですか?あなたがしていることは私には分かりませんが、カウンターの「データ型」はどこですか? –

答えて

0

第1オフ:Javaのメソッド名はcamelCaseです。 )

別のクラスのクラスのフィールドにアクセスするには、それを達成するためのサーバー的な方法があります。最も簡単な1は、静的なフィールドです:

public class MyClass { 
    public static String accessible; 
} 

public class AnotherClass { 
    public void someMethod() { 
     // You can set the value ... 
     MyClass.accessible = "New value"; 
    } 

    public void anotherMethod() { 
     // ... and get the value. 
     System.out.println(MyClass.accessible); 
    } 
} 

しかし、覚えている:あなたはそれを変更しない限り、静的フィールドの値が静的フィールドが使用されているクラスの新しいインスタンスを作成する場合でも、常に同じになります。可能であれば、静的フィールドは避けるべきです。ほとんどの場合、同じ結果を得るためにOOPの方法をとることができます。

〜私は詳細()メソッド内でこれらのインクリメント値を注入することができ

+0

私はUserクラスのコンストラクタに値public int counterを送りましたが、(グローバル変数のように)すべてのUserクラスからこの値にアクセスできるようにする必要があります。 –

+0

intカウンタ値をUserクラスのDetails()に転送します。しかし、私は既に質問クラスから値と名前でDetails()を呼び出しました。私は以前のUser.Details(Bob、30)を使っていましたが、今度は、カウンタの値をDetails()にも転送したいのですが、今回は名前と年齢の引数は必要ありません。質問クラスの1つのメソッドから、名前と年齢を持つDetails()を呼び出し、質問クラスの別のメソッドから、カウンタ値をDetails()に転送する必要があります –

+0

実際にフィールド(クラス変数)にアクセスする必要がある場合複数のクラスでは、静的フィールドを使用できます。 '' 'java パブリッククラスMyClass { public static int myVar = 123; } publicクラスAnotherClass { 公共ボイドのdoSomething(){ のSystem.out.println(MyClass.myVar)。 } } '' ' – Morph

0

モーフ。

この声明は何を意味していますか?

以下のコードはコンパイルできません。

public class User{ 
    static void Details() 
    { 
     public counter; 
    } 
} 

メソッドに引数を送信するためにリフレクションを使用したい場合は、なぜ単にJavaは、「グローバル変数」を持っていないので、あなたがいずれかを持っていないUser.Details(int a,int b)

関連する問題