Como faço para copiar um objeto em Java

Como Faco Para Copiar Um Objeto Em Java



Em Java, a cópia de um objeto entra em vigor onde há a necessidade de utilizar as funcionalidades já implementadas no código ao invés de aplicá-las novamente do zero. Além disso, é auxiliar na atualização dos dados com base nos registros contidos. Desta forma, reduz a complexidade do código e a utilização dos recursos de forma eficaz.

Este artigo demonstrará as abordagens para copiar um objeto em Java.

Como faço para copiar um objeto em Java?

Um objeto pode ser copiado em Java usando as seguintes abordagens:







Acesse todas as aulas dentro do “ java.util ” pacote antes de passar para os exemplos:



importar Java. útil . *;

Abordagem 1: Copiar um Objeto em Java Usando o “Copy Constructor”

O ' Construtor de cópia ” cria/define um objeto referindo-se ao mesmo objeto de classe criado anteriormente.



Exemplo
O exemplo a seguir aplica o “Copy Constructor” para copiar um objeto:





público aula CopyObject {
int eu ia ;
Corda cidade ;
CopyObject ( int eu ia , Corda cidade ) {
esse . eu ia = eu ia ;
esse . cidade = cidade ; }
CopyObject ( objeto CopyObject ) {
esse . eu ia = objeto. eu ia ;
esse . cidade = objeto. cidade ; }
público vazio mostrar ( ) {
Sistema. fora . println ( 'ID ->' + esse . eu ia ) ;
Sistema. fora . println ( 'Cidade ->' + esse . cidade ) ; }
público estático vazio principal ( Corda [ ] argumentos ) {
entrada do scanner = novo scanner ( Sistema. em ) ;
Sistema. fora . println ( 'Digite o id: ' ) ;
int eu ia = entrada. nextInt ( ) ;
Sistema. fora . println ( 'Entre na cidade: ' ) ;
Corda cidade = entrada. próximo ( ) ;
Copiar Objeto objeto1 = novo CopyObject ( eu ia , cidade ) ;
Copiar Objeto objeto2 = novo CopyObject ( objeto1 ) ;
Sistema. fora . println ( 'Objeto Padrão ->' ) ;
objeto1. mostrar ( ) ;
Sistema. fora . println ( 'Objeto copiado ->' ) ;
objeto2. mostrar ( ) ;
entrada. fechar ( ) ;
} }

No trecho de código acima:

  • Crie uma classe chamada “ CopyObject ”.
  • Especifique as variáveis ​​de membro declaradas da classe.
  • Depois disso, crie um construtor de classe parametrizado que aloque os valores passados ​​para as variáveis ​​especificadas por meio de “ esse ”.
  • Agora, crie um “ Construtor de cópia ” que leva como parâmetro um objeto do tipo classe já criado que será passado como argumento posteriormente.
  • Além disso, defina a função “ mostrar() ” que exibe os valores de objeto passados.
  • No ' principal() ” , crie um objeto “Scanner” para permitir a entrada do usuário por meio do “ System.in ” parâmetro.
  • Além disso, associe o “ nextInt() ' e ' próximo() ” para obter as entradas do usuário inteiro e string, respectivamente.
  • Crie um objeto de classe através do “ novo ” e a palavra-chave “ Copiar Objeto() ” Construtor tendo os valores de entrada do usuário como seus argumentos.
  • Além disso, crie um objeto de cópia tendo o objeto criado como seu argumento para retornar o conteúdo copiado referindo-se ao construtor de cópia de classe.
  • Por último, invoque o “ mostrar() ” para exibir os valores de entrada do usuário passados ​​e fechar o “Scanner”.

Saída



Nesta saída, pode ser implícito que um objeto de cópia é criado e exibido de acordo.

Abordagem 2: copiando um objeto em Java por meio do método “clone ()”

O ' clone() ” método do “ java.lang.Object ” A classe pega um objeto como parâmetro, cria e dá uma cópia dele. Este método pode ser implementado para copiar um objeto fazendo referência ao objeto já criado (que precisa ser copiado) e ao método “clone()”.

Sintaxe

objeto. clone ( )

Este método fornece uma cópia do objeto e lança “ CloneNotSupportedException ” se a classe do objeto não implementar/aplicar a interface “Cloneable”.

Exemplo
Percorra as linhas de código abaixo:

público aula CopyObject implementos Clonável {
int eu ia ;
Corda cidade ;
CopyObject ( int eu ia , Corda cidade ) {
esse . eu ia = eu ia ;
esse . cidade = cidade ;
}
público vazio mostrar ( ) {
Sistema. fora . println ( 'ID ->' + esse . eu ia ) ;
Sistema. fora . println ( 'Cidade ->' + esse . cidade ) ;
}
público estático vazio principal ( Corda [ ] argumentos ) lances CloneNotSupportedException {
entrada do scanner = novo scanner ( Sistema. em ) ;
Sistema. fora . println ( 'Digite o id: ' ) ;
int eu ia = entrada. nextInt ( ) ;
Sistema. fora . println ( 'Entre na cidade: ' ) ;
Corda cidade = entrada. próximo ( ) ;
Copiar Objeto objeto1 = novo CopyObject ( eu ia , cidade ) ;
Sistema. fora . println ( 'Objeto Padrão ->' ) ;
objeto1. mostrar ( ) ;
Sistema. fora . println ( 'Objeto copiado ->' ) ;
Copiar Objeto objeto2 = ( CopyObject ) objeto1. clone ( ) ;
objeto2. mostrar ( ) ;
entrada. fechar ( ) ;
} }

De acordo com o bloco de código acima, execute as etapas abaixo:

  • Lembre-se das abordagens discutidas para definir uma classe, especificar as variáveis ​​de membro, criar um construtor de classe parametrizado (alocando os valores passados) e definir uma função para exibir os valores, respectivamente.
  • Agora em ' principal() ”, da mesma forma, o usuário insere os valores e passa esses valores para o objeto de classe criado e os exibe por meio da função correspondente.
  • Depois disso, o “ clone() ” entra em vigor o método associado ao objeto já criado para criar um objeto de cópia.
  • Por fim, exiba o conteúdo do objeto copiado também por meio da função discutida.

Saída

Neste resultado, pode-se observar que os valores de entrada do usuário são retornados duas vezes com resultados idênticos, garantindo que o objeto de classe seja copiado adequadamente.

Conclusão

Um objeto pode ser copiado em Java usando o “ Construtor de cópia ', ou o ' clone() ” método. A primeira abordagem copia o objeto tomando o objeto já criado como um argumento do construtor de cópia. A última abordagem está associada diretamente ao objeto de classe criado. Este artigo demonstrou as abordagens para copiar um objeto em Java.