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:
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.