Java でオブジェクトをコピーするにはどうすればよいですか

Java Deobujekutowokopisurunihadousurebayoidesuka



Java では、コード内に既に実装されている機能を最初から適用するのではなく利用する必要がある場合、オブジェクトのコピーが有効になります。また、含まれているレコードに基づいてデータを更新する場合にも役立ちます。このようにして、コードの複雑さが軽減され、リソースの使用率が効果的に削減されます。

この記事では、Java でオブジェクトをコピーする方法を説明します。

Java でオブジェクトをコピーするにはどうすればよいですか?

Java では、次の方法を使用してオブジェクトをコピーできます。







「」内のすべてのクラスにアクセスします。 java.util ” パッケージを参照してから、例に進みます。



輸入 ジャワ。 ユーティリティ *;

アプローチ 1: 「コピー コンストラクター」を使用して Java でオブジェクトをコピーする

コピーコンストラクター 」は、以前に作成した同じクラス オブジェクトを参照してオブジェクトを作成/定義します。




次の例では、「コピー コンストラクター」を適用してオブジェクトをコピーします。





公共 クラス コピーオブジェクト {
整数 ID ;
;
コピーオブジェクト ( 整数 ID ) {
これ ID = ID ;
これ = ; }
コピーオブジェクト ( CopyObject オブジェクト ) {
これ ID = 物体。 ID ;
これ = 物体。 ; }
公共 空所 画面 ( ) {
システム。 プリントイン ( 「ID→」 + これ ID ) ;
システム。 プリントイン ( 「都市→」 + これ ) ; }
公共 静的 空所 主要 ( [ 引数 ) {
スキャナ入力 = 新しい スキャナー ( システム。 ) ;
システム。 プリントイン ( 「IDを入力してください:」 ) ;
整数 ID = 入力。 nextInt ( ) ;
システム。 プリントイン ( 「街に入ってください:」 ) ;
= 入力。 ( ) ;
CopyObject オブジェクト 1 = 新しい コピーオブジェクト ( ID ) ;
CopyObject オブジェクト 2 = 新しい コピーオブジェクト ( オブジェクト1 ) ;
システム。 プリントイン ( 「デフォルトのオブジェクト ->」 ) ;
オブジェクト1。 画面 ( ) ;
システム。 プリントイン ( 「コピーされたオブジェクト ->」 ) ;
オブジェクト2。 画面 ( ) ;
入力。 近い ( ) ;
} }

上記のコード スニペットでは次のようになります。

  • 「」という名前のクラスを作成します コピーオブジェクト ”。
  • 指定されたクラスのメンバー変数を指定します。
  • その後、「」を介して、渡された値を指定された変数に割り当てるパラメーター化されたクラス コンストラクターを作成します。 これ ”。
  • ここで、「」を作成します。 コピーコンストラクター 」は、後で引数として渡される、すでに作成されたクラス型オブジェクトをパラメータとして受け取ります。
  • また、関数「」を定義します。 画面() 」は、渡されたオブジェクトの値を表示します。
  • の中に ' 主要() ” メソッドで、ユーザーが「」経由で入力できるようにする「Scanner」オブジェクトを作成します。 システムイン ”パラメータ。
  • また、「」を関連付けます。 nextInt() ' と ' 次() 」メソッドを使用して、それぞれ整数と文字列のユーザー入力を受け取ります。
  • 「」経由でクラスオブジェクトを作成します。 新しい ” キーワードと” CopyObject() ” ユーザー入力値を引数として持つコンストラクター。
  • また、クラスコピーコンストラクタを参照して、作成したオブジェクトを引数とするコピーオブジェクトを作成し、コピーした内容を返します。
  • 最後に、「」を呼び出します。 画面() 」関数を使用して、渡されたユーザー入力値を表示し、「スキャナー」を閉じます。

出力



この出力では、コピー オブジェクトが作成され、それに応じて表示されることが暗示されています。

アプローチ 2: Java で「clone()」メソッドを使用してオブジェクトをコピーする

クローン() ”の方法” java.lang.オブジェクト ” クラスはオブジェクトをパラメータとして受け取り、そのコピーを作成して渡します。このメソッドは、既に作成されている(コピーする必要がある)オブジェクトと「clone()」メソッドを参照することで、オブジェクトをコピーするために実装できます。

構文

物体。 クローン ( )

このメソッドはオブジェクトのコピーを提供し、「 CloneNotSupportedException 」 オブジェクトのクラスが「Cloneable」インターフェイスを実装/適用していない場合。


以下のコード行を確認してください。

公共 クラス コピーオブジェクト 実装する クローン可能 {
整数 ID ;
;
コピーオブジェクト ( 整数 ID ) {
これ ID = ID ;
これ = ;
}
公共 空所 画面 ( ) {
システム。 プリントイン ( 「ID→」 + これ ID ) ;
システム。 プリントイン ( 「都市→」 + これ ) ;
}
公共 静的 空所 主要 ( [ 引数 ) 投げる CloneNotSupportedException {
スキャナ入力 = 新しい スキャナー ( システム。 ) ;
システム。 プリントイン ( 「IDを入力してください:」 ) ;
整数 ID = 入力。 nextInt ( ) ;
システム。 プリントイン ( 「街に入ってください:」 ) ;
= 入力。 ( ) ;
CopyObject オブジェクト 1 = 新しい コピーオブジェクト ( ID ) ;
システム。 プリントイン ( 「デフォルトのオブジェクト ->」 ) ;
オブジェクト1。 画面 ( ) ;
システム。 プリントイン ( 「コピーされたオブジェクト ->」 ) ;
CopyObject オブジェクト 2 = ( コピーオブジェクト ) オブジェクト1。 クローン ( ) ;
オブジェクト2。 画面 ( ) ;
入力。 近い ( ) ;
} }

上記のコード ブロックに従って、以下の手順を実行します。

  • クラスの定義、メンバー変数の指定、パラメーター化されたクラス コンストラクターの作成 (渡された値の割り当て)、および値を表示する関数の定義についてそれぞれ説明したアプローチを思い出してください。
  • 今 ' 主要() 」の場合も同様に、ユーザーが値を入力し、作成されたクラス オブジェクトにこれらの値を渡し、対応する関数を介して表示します。
  • その後、「 クローン() 」メソッドが有効となり、作成済みのオブジェクトに関連付けられてコピーオブジェクトが作成されます。
  • 最後に、説明した関数を使用して、コピーしたオブジェクトの内容も表示します。

出力

この結果では、ユーザー入力値が同じ結果で 2 回返され、クラス オブジェクトが適切にコピーされていることを確認できます。

結論

オブジェクトは Java で「」を使用してコピーできます。 コピーコンストラクター '、 または ' クローン() ' 方法。前者の方法では、既に作成されているオブジェクトをコピー コンストラクターの引数として取得して、オブジェクトをコピーします。後者のアプローチは、作成されたクラス オブジェクトに直接関連付けられます。この記事では、Java でオブジェクトをコピーする方法を説明しました。