- - PR -
別クラスのメソッドを使用する場合についての質問
1|2|3|4
次のページへ»
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2003-11-18 15:06
例えば、クラスA(Class_A)が有り、その中でクラスB(Class_B)をコンストラクトしていて、
クラスAには"A_Method()"というメソッドが有る。 public class Class_A { public Class_A { Class_B clsB = new Class_B(this); } void A_Method(){ } } 上記の設定の場合、クラスBの中でクラスAの"A_Method()"を使いたい場合、 下記のようにクラスBのコンストラクタの引数にクラスAを与えて、 下記のようにクラスAのメソッドを使っていますが、正しいのでしょうか? public class Class_B { Class_A clsA; public Class_B(Class_A cls) { clsA = cls; clsA.A_Method(); } } | ||||
|
投稿日時: 2003-11-18 15:21
Class_AでもClass_Bでも使っているメソッドで、Class_AとClass_Bに関連があるなら、A_MethodはClass_AとClass_Bの外で定義したほうが良いのではないでしょうか?
あるいは、Class_AとClass_Bを継承関係にしたほうが良いかもしれませんね。 A_Methodの中身にもよるかと思いますが・・・。 | ||||
|
投稿日時: 2003-11-18 15:51
いたちさん、ご意見ありがとうございました。
条件の説明が不足していました。 >A_Methodの中身にもよるかと思いますが・・・。 例えば、A_Method()内でクラスAの変数を変更しているとします。 public class Class_A { boolean blnA = false; public Class_A { Class_B clsB = new Class_B(this); } void A_Method(){ blnA = true; } } また >あるいは、Class_AとClass_Bを継承関係にしたほうが良いかもしれませんね。 との事ですが、なぜ継承関係にしたほうが良いと思われますか? | ||||
|
投稿日時: 2003-11-18 15:53
文法的には正しいと思いますよ。
| ||||
|
投稿日時: 2003-11-18 16:00
おばけさん、ご意見ありがとうございました。
>文法的には正しいと思いますよ。 との事ですが、このようなメソッドの使い方は通常行われてはいないのでしょうか? また、おばけさんならどうしますか? | ||||
|
投稿日時: 2003-11-18 16:01
上記のClass_AとClass_Bの関連がどのようなモデリングから導かれたか、が問題であると思います。差し支えなければどのようなモデルなのか教えていただけませんか?そうすれば、より良いモデルの代替案が提示できる可能性もあります。 | ||||
|
投稿日時: 2003-11-18 16:08
「コンストラクタ=初期化作業」ですからコンストラクタが終わらない内に他のクラスからメソッドを呼ぶのは止めた方が良いですよ。
初期化作業が終わっていないので想定外の動きをする危険があります。 | ||||
|
投稿日時: 2003-11-18 16:44
おばけさん、ぽんさんご意見ありがとうございました。
>上記のClass_AとClass_Bの関連がどのようなモデリングから導かれたか 特に考えずにClass_AとClass_Bの例を書き、モデリングの意味さえよくわかっていません・・・ これでは、おばけさんも答えようがありませんね、すみません。 >「コンストラクタ=初期化作業」ですからコンストラクタが終わらない内に他のクラスからメ >ソッドを呼ぶのは止めた方が良いですよ。 はい、わかりました。注意します、ありがとうございました。 | ||||
1|2|3|4
次のページへ»
