JavaのClone()メソッドは、あるオブジェクトを別のオブジェクトに複製する方法を提供します。最初のオブジェクト。 私の質問は、clone()を使用して、値渡しを使用して同等または同等の違いがあるということです。clone()メソッドは、Javaの値渡しの概念と同等です
答えて
@Kayamanとは関係がありませんが、行動は似ています。クローンはメモリ内の新しい場所にコピーを作成するので、第2のオブジェクトによる変更は第1のオブジェクトに反映されません。メソッドでこのクローンをパラメータとして使用し、このメソッドによって変更された場合、変更はクローンに反映されます。クローンされたオブジェクトの参照渡しです。
Javaは厳密には値渡しです。それは参照渡しではありません。 –
あなたがmodify(2)を呼び出した場合、私は同意しなければなりません。これは値渡しですが、あなたがmodify(car)を呼び出した場合です。これは参照渡しであり、すべてのオブジェクトはjavaで参照渡しされます。 – Wael
オブジェクトはJavaではまったく渡されません。オブジェクトの_Pointers_はJavaで渡されます。価値によって。あなたがそれが好きなら反対しますが、あなたは事実に反対するでしょう。調べる。私はこれを発明していない。値渡しとはどのように伝えることができますか?メソッドがパラメータを再割り当てすると、呼び出し元は変更を認識しません。それは参照渡しではないことをあなたが知っている方法です。真剣に、それを見てください。 –
値渡しとは、オブジェクトのコピーを呼び出された関数に渡すことを意味します。オブジェクトを複製してから関数に渡すと、同じ効果が得られ、複製されたオブジェクトの変更は元のオブジェクトに反映されません。
ただし、オブジェクトをどのように複製するかによって異なります。浅いクローニングを使用してオブジェクトをクローン化し、それを関数に渡して、クローンオブジェクト内のオブジェクトの参照に対して操作を実行すると、参照されるオブジェクトが変更され、その効果が多少異なる可能性があります。この場合
class A
{
int a;
}
と
class B implements Cloneable{
int b;
A a;
public B clone(){
B obj= new B();
obj.b=this.b;
obj.a=this.a;
}
}
クローンメソッドは、オブジェクトAの参照をコピーすると、このオブジェクトへの変更が実際に変化をもたらすであろう:例について
oのオブジェクト。
したがって、値渡しと同じ効果を得るには、深いクローニングを使用する必要があります。
あなたの質問にお答えください。彼らはです!
Javaはメソッドにオブジェクトを渡すことはなく、オブジェクトのコピーははるかに少なくなります。 Javaでは、値渡しとは、「オブジェクトのコピーを呼び出された関数に渡している」という意味ではありません。それが意味することは、メソッド引数には呼び出し元ルーチンが渡されたときと同じ値が呼び出されるということです。したがって、メソッド内のパラメータ値の変更は、呼び出し側には表示されません。参照(ポインタ)引数の場合、これは深いクローニングの_opposite_です。したがって、この回答の目的とは反対です。 _same_オブジェクトへのポインタは、クローンではなく呼び出し元のものとして渡します。間違っているために下落した。 –
@LewBloch決して私の答えでは、私はオブジェクトがメソッドに渡されると述べた。私の唯一の提案は、クローニングは価値のあるものを渡すために同様の結果をもたらすということでした。 "呼び出された関数にオブジェクトのコピーを渡す"これは、オブジェクトのコピーではなく、複製されたオブジェクトを参照することを意味します。私はあなたが私の答えを間違って理解したと思います。 –
オブジェクトをメソッドに渡すという言葉を引用した部分を除いては? –
- 1. Anecessと同等の概念を持つAnstatesは何ですか?
- 2. 概念 - javaとandroid
- 3. Javaインターフェイスの概念
- 4. java threadsの概念
- 5. NLogはlog4netのILoggerRepositoryと同等の概念を持っていますか?
- 6. Java SFTPクライアント - 概念
- 7. Javaのclone()メソッド
- 8. Javaマルチプレイヤーゲーム - ネットワーキングの概念
- 9. シリアライズの概念 - java - C#
- 10. ClojureトランスデューサはJavaのストリーム上の中間演算と同じ概念ですか?
- 11. JAVAのオーバーライドと内部クラス概念
- 12. ネイティブJavaメソッドは静的Javaメソッドと同等ですか?
- 13. Javaの継承メソッドの可視性の概念
- 14. JFCとAPIの概念は一般的に同じですか?
- 15. Java URIResolverの概念はC#と.NETに存在しますか?
- 16. CNTKTextFormatDeserializerの概念とは何ですか?
- 17. C#でJavaのfloat.floatToRawIntBitsと同等のメソッドは何ですか?
- 18. Javascriptで 'currying'と 'composition'は同じ概念ですか?
- 19. Javaのoopの概念の提案
- 20. Javaの概念の継承ハック?
- 21. JavascriptのJavaオブジェクト指向の概念
- 22. Javaの共有メモリの概念
- 23. JavaのClone()メソッドのオーバーライド
- 24. "サブルーチン"と "ルーチン"は同じ概念ですか?
- 25. ピボットテーブルの概念
- 26. インデックスアクセスの概念
- 27. メークファイルの概念
- 28. クラスの概念
- 29. プレーフレームワークの概念
- 30. Javaの列挙型:概念疑い
いいえ、彼らは決して関連していません。 – Kayaman