- 784 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 12:05:48 ]
- >>773
> str = "java"; その例だと参照型の値を変更してるのではなくて、 参照先そのものを変更してる。 // 甲 static void method(Calendar c){ c.add(....); } // 乙 static void method(Calendar c){ c = Calendar.getInstance(); c.add(....); } 甲を呼び出した場合、呼び出し元の c は値が変更されてるが 乙を呼び出した場合、呼び出し元の c は値が変更されない。 乙内で参照される c は新たに別の Calendar オブジェクトを参照してるため、 呼び出し元の c に影響を与えないから。 あなたの例は乙に近い。 なお、String には Calendar の add に相当するような、内部の状態を変更するメソッドはない。 (あると不変オブジェクトではなくなってしまう。) replace も substring も、返り値として String を返す。 元の String を参照しても、replace、substring される前の値と全く変化ない。
|

|