- - PR -
「AメソッドからAメソッドを呼ぶ」について
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-11-29 20:25
初歩的質問で申し訳ありませんが
教えて下さい ■やってるこ @とある処理からXクラスをnewする AXインスタンスのAメソッドを処理する BAメソッドの中でthis.A()を呼ぶ ■質問 Bの処理はAの処理の変数に影響しますか? 当然、無限ループさせないロジックにはなっています。 Aメソッドにstatic変数は記述してません。 よろしくお願いします | ||||||||
|
投稿日時: 2006-11-29 20:36
実際に試されたらわかることなのでは?
| ||||||||
|
投稿日時: 2006-11-29 20:44
変数とは、ローカル変数のこと?それともインスタンス変数のこと?
メソッド内で作成されたローカル変数なら、影響は受けない。 インスタンス変数なら、影響を受ける。 ただし、ローカル変数だからといって、その参照先がインスタンス変数と同じなら影響を受ける。 引数も同様に、実引数(引渡し側)によって変わる。 他にも注意点があるかもしれないが、もう思いつかない。 | ||||||||
|
投稿日時: 2006-11-29 20:47
もしかして変数のスコープとかの話なのかなぁ。 staticフィールドを使ってれば当然影響はありますよ。 今の想定ケースではインスタンスメソッドの呼び出しなので インスタンスフィールドを使っていても影響があります。 ローカル変数であれば影響ありません。
こういうのは実験用プログラムを書いて納得いくまでいじるのが一番です。 Eclipseなどのエディタを使っているのであれば、ステップ実行してみましょう。 | ||||||||
|
投稿日時: 2006-11-29 21:07
> BAメソッドの中でthis.A()を呼ぶ
再帰処理ですね。Javaに限らず使う手法ですので、 ネットで検索するとたくさんネタが見つかりますよ。 |
1