2017-01-06 12 views
1

私は2クラスAとBクラスの変数の転送方法は?

class A{ 
    private int a=0; 
    A(){ 
    B b = new B(); 
    } 
} 
class B{ 
    void set(){ 
    ??? 
    } 
} 

は、私はクラスAのオブジェクトbセット変数をしたい、どのようにそれを達成するためにしています?

+0

私はBで処理した後、クラスBのオブジェクトが含まれていたJFrameをしていた結果を持って、私は、あなたがアクセスできるクラス 'B'でのJLabel –

+0

パス現在のJFrameオブジェクトでのJFrameと印刷結果しtranferますあなたのJLabelクラスは 'B'であり、JLabelも同様に設定できます。 –

+0

また、クラスBがAの変数を変更する必要があるのはなぜですか?時にはこれは変数が本当にBに入るべきこと、あるいは変数を変更しているメソッドがAであるべきことを意味するかもしれません... AとBは一つのクラスにマージされるべきです... –

答えて

1

Aaはプライベートなので、常にAの何らかの方法でアクセスする必要があります。

class A{ 
    private int a=0; 
    A(){ 
     B b = new B(); 
     b.set(this); 

    } 

    public void change(int f){ 
     a= f; 
    } 
} 

class B{ 
    void set(A x){ 
     x.change(5); // or any pass value 
    } 
} 
+0

あなたのコードといくつかの変更を使用して、それは動作します –

+0

常にクラスのプライベートメンバーはそのクラスのメソッドによってのみ変更することができます。受け入れてくれてありがとう。 –

0

プライベート変数のクラスAでgetterおよびsetterメソッドを記述する必要があります。

class A{ 
     private int a=0; 
     public int getA() { 
     return a; 
    } 
    public void setA(int a) { 
     this.a = a; 
    } 
    A(){ 
     B b = new B(); 
     } 
    } 
    class B { 
     public int b = 0; 
     void set(){ 
     A a = new A(); 
     b = a.getA(); 
     } 
    } 
+0

クラス 'B'の' set'メソッドはどこでも呼び出されません。クラス 'B'の' set'メソッドを介して 'A'クラスの' a'をどのように変更できるかが問題です。 –

+0

setメソッドで** a **の値を変更したいと思います。したがって、getA()ではなくa.setA(値)を呼び出します。 – THA

+0

必須ではないsetメソッドで新しいオブジェクトを作成しました。 setメソッドで現在のオブジェクトのコンテキストを渡し、クラスBのsetメソッドでsetAメソッドを呼び出す必要があります。 –

関連する問題