【初心者】Java質問・相談スレッド99【大歓迎】
at TECH
784:デフォルトの名無しさん
07/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 される前の値と全く変化ない。
次ページ続きを表示1を表示最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4336日前に更新/251 KB
担当:undef