- 162 名前:デフォルトの名無しさん [2010/05/07(金) 09:04:58 ]
- 初心者です。試験勉強用の事で、言葉の定義とかなんですが、質問させて下さい。
1)メソッドに渡した基本型のフィールド変数は、メソッド内側の操作は、 外側の変数には反映されないでしょうか。(合っていますよね。) 2)このメソッド内の変数をローカル変数と呼ぶ、合っていますか。 3)通常、引数で渡した変数の反映を読んだ側でも反映して返すには、 戻り値で返すのが普通でしょうか。(static変数との使い分けがよく分からない;) 4)メソッドに参照型の参照で渡した場合、 メソッド内部のインスタンスに対する操作は反映される、っていうのが、 当たり前だと個人的には感じるんだけども、 わざわざ参考書とかで説明してあるのが謎です。 例えば、 method1(Vector v)の中で Vector v = new Vector(); v.add(new String("abc"); とやった場合には外側のvにはabcはくっつかない、 method2(Vector v)の中で v.add(new String("abc"); とかやると、くっつく、と。 当たり前の様な気もしますし、どうなんでしょう。 5)この4)の場合と、1)の場合を比較した時の理論がよくわかりません。 1)だと、メソッド側に引数で渡された基本型の値はコピーされて (多分JVMのメモリにはその値用の領域が確保されますよね) メソッド内の操作はそのコピーされた領域に保存された値を操作しているんだと 思いますが、4)で参照を渡した時も、参照は別の領域にコピーされるんですよね。 すると、4−method2の場合には、v.add〜のvで指せる参照はコピーされた 値な様な気がして・・どうなんでしょうか。
|

|