Em Java, pode haver casos em que o desenvolvedor precisa realocar os valores de acordo com os requisitos. Por exemplo, a atualização das entradas do construtor de tempos em tempos mantém o código intacto. Nesses casos, o “
Copiar construtor”Em Java, torna -se útil para modificar as funcionalidades do código de acordo com os requisitos fornecidos.
Este artigo discutirá a utilização do "Copy Constructor" usando Java.
O que é um "construtor de cópia" em Java?
O "Copiar construtor”Corresponde a um construtor que cria/faz um objeto, inicializando -o com o objeto de classe idêntico, criado antes. Para criar um construtor de cópias, o objeto de classe existente é colocado como um argumento e os valores das variáveis de instância são inicializados com os valores acumulados no objeto.
Exemplo 1: Aplicando um "Construtor de Copiar" para copiar os valores de objeto "alocados" em Java
Este exemplo utiliza o “Copiar construtor”Para copiar os valores de objeto alocado de outro objeto criado, envolvendo o objeto alocado como seu argumento:
ClassProfile
Nome da string;
Int Age;
Perfil (nome da string, Int Age)
esse.nome = nome;
esse.idade = idade;
Perfil (perfil ob)
Sistema.fora.println ("Construtor de cópia invocado!");
esse.nome = ob.nome;
esse.idade = ob.idade;
No código de classe acima, aplique as seguintes etapas:
- Primeiro de tudo, defina uma classe chamada “Perfil”.
- Em sua definição, especifique as variáveis fornecidas.
- Depois disso, inclua o construtor de classe compreendendo os parâmetros declarados idênticos aos especificados.
- Na definição do construtor, consulte as variáveis especificadas via “esse”E atribui -lhes os argumentos passados.
- Agora, crie um construtor de cópia com o parâmetro declarado.
- Observação: ““ob”No construtor de cópias aponta para o objeto de classe criado.
- Em sua definição, da mesma forma, consulte as variáveis especificadas e atribua -lhes os valores já alocados através do objeto passado.
Agora, vamos para as seguintes linhas de código:
classe pública copyCoStructor
public static void main (string args [])
Perfil Object1 = new Perfil ("Harry", 18);
Perfil Object2 = new Perfil (Object1);
Sistema.fora.println ("\ nbe antes da modificação dos valores:");
Sistema.fora.println (objeto1.nome + "" + objeto1.idade);
Sistema.fora.println (objeto2.nome + "" + objeto2.idade);
objeto2.idade = 24;
Sistema.fora.println ("\ nafter modificando valores:");
Sistema.fora.println (objeto1.nome + "" + objeto1.idade);
Sistema.fora.println (objeto2.nome + "" + objeto2.idade);
De acordo com este código:
- Crie os objetos de classe usando o “novo"Palavra -chave e a"Perfil()”Construtor, respectivamente.
- O primeiro objeto corresponde ao construtor de primeira classe que compreende os valores declarados.
- Este último objeto criado refere -se ao construtor de cópias.
- Agora, exiba os valores de objeto um por um.
- Neste ponto, ambos os valores de objeto exibem valores idênticos, pois o objeto anterior é embrulhado como o último argumento do construtor (copiado).
- Na próxima etapa, aloque um novo valor para o último objeto.
- Por fim, exiba os valores de objeto atualizados após a alocação.
Código inteiro
Perfil da classe
Nome da string;
Int Age;
Perfil (nome da string, Int Age)
esse.nome = nome;
esse.idade = idade;
Perfil (perfil ob)
Sistema.fora.println ("Construtor de cópia invocado!");
esse.nome = ob.nome;
esse.idade = ob.idade;
classe pública copyCoStructor
public static void main (string args [])
Perfil Object1 = new Perfil ("Harry", 18);
Perfil Object2 = new Perfil (Object1);
Sistema.fora.println ("\ nbe antes da modificação dos valores:");
Sistema.fora.println (objeto1.nome + "" + objeto1.idade);
Sistema.fora.println (objeto2.nome + "" + objeto2.idade);
objeto2.idade = 24;
Sistema.fora.println ("\ nafter modificando valores:");
Sistema.fora.println (objeto1.nome + "" + objeto1.idade);
Sistema.fora.println (objeto2.nome + "" + objeto2.idade);
Saída
Nesta saída, pode -se analisar que os valores de objeto alocados são embrulhados no construtor de cópias adequadamente.
Antes de prosseguir para o próximo exemplo, inclua o pacote a seguir para ativar a entrada do usuário:
importar java.util.Scanner;
Exemplo 2: Aplicando um "Construtor de Copiar" para copiar os valores do objeto "Entrada do usuário" em Java
Neste exemplo, o “Copiar construtor”Pode ser aplicado para copiar os valores do objeto de entrada do usuário acumulando o objeto de classe já criado como o argumento do construtor do último objeto:
ClassProfiledata
Nome da string; Int Age;
Profiledata (Nome da String, Int Age)
esse.nome = nome;
esse.idade = idade;
Profiledata (Profiledata ob)
Sistema.fora.println ("Construtor de cópia invocado!");
esse.nome = ob.nome; esse.idade = ob.idade;
voidShow ()
Sistema.fora.println ("O nome é:"+this.nome);
Sistema.fora.println ("A idade é:"+this.idade);
publicClasscopyConstructor2
publicstaticVoidMain (String args [])
Objeto de scanner = novo scanner (sistema.em);
Sistema.fora.println ("Digite o nome:");
Nome da string = objeto.nextline ();
Sistema.fora.println ("Digite a idade:");
int age = objeto.nextInt ();
Profiledata object1 = new Profiledata (nome, idade);
objeto1.mostrar();
Profiledata object2 = new Profiledata (object1);
objeto2.mostrar(); objeto.fechar();
Aplique as etapas a seguir, conforme fornecido nas linhas de código acima:
- Lembre -se das abordagens discutidas para definir uma classe e incluir o construtor e o construtor de cópias, respectivamente.
- Depois disso, defina a função chamada “mostrar()”Para exibir os valores de objeto passados.
- No "principal()”Método, crie um“Scanner“Objeto usando o“novo"Palavra -chave e a"Scanner ()”Construtor, respectivamente.
- O "Sistema.em”O parâmetro lê a entrada do usuário,“NextLine ()" e a "NextInt ()”Os métodos garantem a entrada do usuário como“Corda", e "Inteiro”, Respectivamente.
- Agora, crie um objeto de classe chamado “objeto1”Através da abordagem discutida e aprova os valores de entrada do usuário como seus argumentos. Além disso, exiba esses valores através da função de classe invocada “mostrar()”.
- Na próxima etapa, crie outro objeto de classe e passe o objeto anterior como o argumento do construtor de cópias, de modo que os valores de entrada do usuário se acumularam anteriormente neste objeto.
- Por fim, exiba os valores usando a função acessada “mostrar()"E fechar o"Scanner”Com a ajuda do associado“fechar()”Método.
Saída
O resultado acima significa que o construtor de cópias é invocado e os valores do objeto são acumulados de acordo.
Conclusão
O "Copiar construtor”Em Java, corresponde a um construtor que cria/faz um objeto, inicializando -o com o mesmo objeto de classe/idêntico, criado antes. Este construtor funciona de modo que o objeto já criado seja envolvido como seu argumento. Este blog foi guiado usando e implementando o “Copiar construtor”Em Java.