【初心者】Java質問・相談スレッド99【大歓迎】 at TECH
[2ch|▼Menu]
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