- コード求むID: 334
- 登録日時: 2008/10/13 05:32
- 最終更新日時: 2008/10/17 15:44
- アクセス数: 361
- タグ:
java,
いまいち使い方がイメージできません。
「こういったときに使ったよ」
「こんなときに便利でしょ」
と言ったアドバイスがいただけたらと思います。
どうぞよろしくお願いします。
コメント

- 2:mmike
- 2008/10/14 17:06
Javaに限ってになりますが、通信用のパラメータを独立したBeanにして委譲させた際、getterで本物をそのまま返すと設定値が換わってしまうので、clone値を返却するということをしたことがあります。

- 3:rizo
- 2008/10/17 05:07
tetsuhon様、mmike様
アドバイスありがとうございます。
む〜ん、難しいですね。
自分でも少し調べてみました。
「オブジェクトのコピーを作るにはどうするか?」
http://ray.sakura.ne.jp/tips/copy.html
>Prototype
ほうほう、Prototypeパターンとな・・・
「Prototype
http://www.techscore.com/tech/DesignPattern/Prototype.html
あ、なんか掴めそう、うーんまだ無理
ということで、引き続き理解ができるように調べてみたいと思います。

- 4:rizo
- 2008/10/17 06:41
いろいろ理解不足なんですが・・・
ruby
まずはirbを実行
userに名前を設定して、user2
--
>>
=>
>>
=>
>>
=>
>>
=>
>>
=>
>>
=>
>>
=>
>>
=>
user
自分の中では当たり前じゃん!っと言った感じです。
で、次
同じように、userに名前を設定して、user2
ただし今回はハッシュを使いました。
--
>>
=>
>>
=>
>>
=>
>>
=>
>>
=>
>>
=>
>>
=>
>>
=>
user2
で上記の、「user2
user2
自分の中では例1で
clone
いにしえからやっていらっしゃる方なんかは、
「そんなの当たり前じゃん!」と言うかもしれませんが・・・
どうぞよろしくお願いします。

- 5:rizo
- 2008/10/17 07:22
なんか立て続けなんですが、さらに試してみました。
>>
=>
>>
=>
>>
=>
>>
=>
>>
=>
>>
=>
>>
=>
>>
=>
>>
=>
user
"t"
ポインタってやつですか?
LLしか知らないのでこの辺り気にしたことないんですが、
user[0]
user[0]
user
で前の投稿の例2の場合は、
user
で

- 6:ゲスト
- 2008/10/17 15:44
4の例2について。
user2
というのは、「userが指しているオブジェクトを、user2も指すようにする」ということで、両方同じオブジェクトを指しています。
その上で、
user2["name"]
と、「user2の指しているオブジェクトをこのように変える」だと、「あ、それってuserも指してたよね」なので。
例1だと、
user
user2
user2
と、最終的に両者は別の物を指しています。
前へ 1 次へ![]()
コメントする
[block]から[/block]までの範囲はブロック表示されます。
部分的に目立たせたい時や、引用などにお使いください。
[code]から[/code]までの範囲は等幅表示されます。
ソースコードや設定ファイルの記述などにお使いください。






Javaについてですが、あまりcloneメソッドを利用するということはありませんね~。(親クラスが実装しているとか、開発の都合上利用する場合はあるかもしれませんが。)
他の言語では分からないですが、Collectionインターフェースを実装しているクラスみたいに、コピーコンストラクタを使うことが多い気がします。