¿Cómo copio un objeto en Java?

Como Copio Un Objeto En Java



En Java, la copia de un objeto entra en vigor cuando existe la necesidad de utilizar las funcionalidades ya implementadas en el código en lugar de aplicarlas nuevamente desde cero. Además, es de ayuda cuando se trata de actualizar los datos en función de los registros contenidos. De esta manera, reduce la complejidad del código y la utilización de los recursos de manera efectiva.

Este artículo demostrará los enfoques para copiar un objeto en Java.

¿Cómo copio un objeto en Java?

Un objeto se puede copiar en Java usando los siguientes enfoques:







Accede a todas las clases dentro del “ java.util ” paquete antes de pasar a los ejemplos:



importar Java. útil . *;

Enfoque 1: Copiar un objeto en Java usando 'Copiar constructor'

El ' Copiar constructor ” crea/define un objeto haciendo referencia al mismo objeto de clase creado previamente.



Ejemplo
El siguiente ejemplo aplica el 'Constructor de copia' para copiar un objeto:





público clase Copiar objeto {
  En t identificación ;
  Cadena ciudad ;
Copiar objeto ( En t identificación , Cadena ciudad ) {
  este . identificación = identificación ;
  este . ciudad = ciudad ; }
Copiar objeto ( Objeto CopyObject ) {
  este . identificación = objeto. identificación ;
  este . ciudad = objeto. ciudad ; }
público vacío mostrar ( ) {
Sistema. afuera . imprimir ( 'Identificación ->' + este . identificación ) ;
Sistema. afuera . imprimir ( 'Ciudad ->' + este . ciudad ) ; }
público estático vacío principal ( Cadena [ ] argumentos ) {
Entrada del escáner = nuevo Escáner ( Sistema. en ) ;
Sistema. afuera . imprimir ( 'Ingrese la identificación: ' ) ;
  En t identificación = aporte. siguienteInt ( ) ;
Sistema. afuera . imprimir ( 'Ingrese la ciudad: ' ) ;
  Cadena ciudad = aporte. próximo ( ) ;
CopiarObjeto objeto1 = nuevo Copiar objeto ( identificación , ciudad ) ;
CopiarObjeto objeto2 = nuevo Copiar objeto ( objeto1 ) ;
Sistema. afuera . imprimir ( 'Objeto predeterminado ->' ) ;
objeto1. mostrar ( ) ;
Sistema. afuera . imprimir ( 'Objeto copiado ->' ) ;
objeto2. mostrar ( ) ;
aporte. cerca ( ) ;
} }

En el fragmento de código anterior:

  • Crea una clase llamada “ Copiar objeto ”.
  • Especifique las variables miembro indicadas de la clase.
  • Después de eso, cree un constructor de clase parametrizado que asigne los valores pasados ​​a las variables especificadas a través de ' este ”.
  • Ahora, crea un “ Copiar constructor ” que toma un objeto de tipo de clase ya creado como su parámetro que se pasará como argumento más adelante.
  • Además, defina la función “ mostrar() ” que muestra los valores de objeto pasados.
  • En el ' principal() ”, cree un objeto “Escáner” para permitir la entrada del usuario a través del “ System.in ” parámetro.
  • Además, asocie el “ siguienteInt() ' y ' próximo() ” métodos para tomar las entradas de usuario de enteros y cadenas, respectivamente.
  • Cree un objeto de clase a través de ' nuevo ” palabra clave y el “ CopiarObjeto() ” constructor que tiene los valores de entrada del usuario como argumentos.
  • Además, cree un objeto de copia que tenga el objeto creado como argumento para devolver los contenidos copiados haciendo referencia al constructor de copia de clase.
  • Por último, invoque el “ mostrar() ” para mostrar los valores de entrada del usuario pasados ​​y cerrar el “Escáner”.

Producción



En esta salida, se puede implicar que se crea un objeto de copia y se muestra en consecuencia.

Enfoque 2: Copiar un objeto en Java a través del método 'clonar ()'

El ' clon() ” método de la “ java.lang.Objeto La clase ” toma un objeto como parámetro, crea y da una copia del mismo. Este método se puede implementar para copiar un objeto haciendo referencia al objeto ya creado (que debe copiarse) y el método 'clonar()'.

Sintaxis

objeto. clon ( )

Este método da una copia del objeto y lanza “ CloneNotSupportedException ” si la clase del objeto no implementa/aplica la interfaz “Clonable”.

Ejemplo
Ir a través de las siguientes líneas de código:

público clase Copiar objeto implementos Clonable {
  En t identificación ;
  Cadena ciudad ;
Copiar objeto ( En t identificación , Cadena ciudad ) {
  este . identificación = identificación ;
  este . ciudad = ciudad ;
}
público vacío mostrar ( ) {
Sistema. afuera . imprimir ( 'Identificación ->' + este . identificación ) ;
Sistema. afuera . imprimir ( 'Ciudad ->' + este . ciudad ) ;
}
público estático vacío principal ( Cadena [ ] argumentos ) lanza CloneNotSupportedException {
Entrada del escáner = nuevo Escáner ( Sistema. en ) ;
Sistema. afuera . imprimir ( 'Ingrese la identificación: ' ) ;
  En t identificación = aporte. siguienteInt ( ) ;
Sistema. afuera . imprimir ( 'Ingrese la ciudad: ' ) ;
  Cadena ciudad = aporte. próximo ( ) ;
CopiarObjeto objeto1 = nuevo Copiar objeto ( identificación , ciudad ) ;
Sistema. afuera . imprimir ( 'Objeto predeterminado ->' ) ;
objeto1. mostrar ( ) ;
Sistema. afuera . imprimir ( 'Objeto copiado ->' ) ;
CopiarObjeto objeto2 = ( Copiar objeto ) objeto1. clon ( ) ;
objeto2. mostrar ( ) ;
aporte. cerca ( ) ;
} }

De acuerdo con el bloque de código anterior, realice los pasos indicados a continuación:

  • Recuerde los enfoques discutidos para definir una clase, especificar las variables miembro, crear un constructor de clase parametrizado (asignar los valores pasados) y definir una función para mostrar los valores, respectivamente.
  • Ahora en ' principal() ”, De manera similar, el usuario ingresa los valores y pasa estos valores al objeto de clase creado y los muestra a través de la función correspondiente.
  • Después de eso, el “ clon() Entra en vigor el método que se asocia al objeto ya creado para crear un objeto de copia.
  • Por último, muestre también el contenido del objeto copiado a través de la función discutida.

Producción

En este resultado, se puede observar que los valores de entrada del usuario se devuelven dos veces con resultados idénticos, lo que garantiza que el objeto de clase se copie correctamente.

Conclusión

Un objeto se puede copiar en Java usando el ' Copiar constructor ', o el ' clon() ' método. El enfoque anterior copia el objeto tomando el objeto ya creado como argumento del constructor de copias. El último enfoque está asociado directamente con el objeto de clase creado. Este artículo demostró los enfoques para copiar un objeto en Java.