• ベストアンサー

外部クラスにアクセス

例えばAクラスで宣言した外部クラス、BクラスとCクラスがあったとします。 例えばそのBクラスから(Aクラスで宣言されて実行中の)Cクラスにアクセス する方法はないでしょうか? 内部クラスにはしたくありません。知っているという方は教えて下さい。もし なければないで結構ですので、それも教えて下さい。お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kuro_73
  • ベストアンサー率28% (33/117)
回答No.1

よくわかりませんが、 BクラスにCクラスの参照を渡せばよいのでは? たとえば、 C_cls c = new C_cls() B_cls b = new B_cls(c); c.setA("XXX"); C_cls cc = b.getC(); out.println(cc.getA()); としたら、"XXX" と返りませんか?

a_works
質問者

お礼

確かに、 class C_cls { String a,b; C_cls() {} void setA(String set) { a = set; } void setB(String set) { b = set; } String getA() { return a; } } class B_cls { C_cls cls2; B_cls(C_cls c) { c.b = "YYY"; cls2 = c; } C_cls getC() { return cls2; } } class A_cls { public static void main(String[] args) { C_cls c = new C_cls(); B_cls b = new B_cls(c); c.setA("XXX"); C_cls cc = b.getC(); System.out.println(cc.getA()); System.out.println(c.b); } } で参照できました。実はサウンドプレイヤー [ http://users.goo.ne.jp/a-works/ ] なのですが、例えば(上記の)BクラスでDクラスのインスタンス を作り、Cクラスでインスタンス化したEクラスのイベントから (Bクラスでインスタンス化した)Dクラスのメソッドを実行させる みたいな事をしたかったと言うことと、クラスの再利用性を上げる ため、内部クラスにはできるだけしたくなかったという事です。 …初歩が全く分かってなかったようですね。何とでもなりそうです。 わざわざ教えて頂き、ありがとうございました。

関連するQ&A