2016-10-14 16 views
-3

私は授業があります:(?参照)を渡す方法リファレンス

class A{ 
// represents the fields 
} 

class B{ 
A objA = new A(); 
// assigning a values to an object (objA) of class A 
} 

class C{ 
//I need this object (objA) with assigned values in the class B to calculations in class C 
} 

をクラスCに?または、あなたの助けをあらかじめ感謝する良い方法がある場合。シングルトンはオプションではありません。 の参照を取る必要があります

public class B { 
    private A objA = new A(); 

    public B() { 
     objA.setA(4); 
    } 

    public A getObjA() { 
     return objA; 
    } 
} 

とクラスC

は、私のような何かにあなたのクラスBを展開

+3

でクラスようなオブジェクトの同じ参照が含まれています*別のクラスに、それをメソッドのパラメータとして与えるか、またはプロパティとして設定します。そこに何か問題はありますか? –

+0

'C'が' A'のインスタンスを必要とする場合、 'B' *とまったく同じように' A' *というクラスレベルメンバを与えるのはなぜですか? – David

答えて

4

クラスCのオブジェクト(OBJA)を使用する必要があります次のようなコンストラクタで:

public class C { 
    private A objA; 

    public C(A objA) { 
     this.objA = objA; 
    } 

    public A getObjA() { 
     return objA; 
    } 
} 

あなたの主なあなたが呼び出すことができます。

public static void main(String[] args) { 
    B bObj = new B(); 
    C cObj = new C(b.getObjA()); 

    System.out.println(cObj.getObjA().getA()); 
} 

今すぐオブジェクトクラスあなただけの*オブジェクトを渡したい場合はCは、cObjbObj

+0

クラスCのクラスAのメソッドの使い方は? – programmerJavaPL

+0

それは別の質問です。短い答えです。 Cクラスの内部では、プライベートプロパティ 'A a'にアクセスできます。 'C'クラスの中で' a'の任意の(public)メソッドを呼び出すことができます。より具体的な答えが必要な場合は、より具体的にしてください。 – pleft

+0

この[リンク](http://pastebin.com/DSRiyxcF)を見てください。それは仕事ではありません – programmerJavaPL