Cos'è un costruttore di copie in Java

Cos'è un costruttore di copie in Java
In Java, ci possono essere casi in cui lo sviluppatore deve riallocare i valori secondo i requisiti. Ad esempio, l'aggiornamento delle voci del costruttore di volta in volta mantiene intatto il codice. In tali casi, il "Copia costruttore"In Java diventa utile per modificare le funzionalità del codice in conformità con i requisiti indicati.

Questo articolo discuterà dell'utilizzo del "costruttore di copie" usando Java.

Cos'è un "costruttore di copie" in Java?

IL "Copia costruttore"Corrisponde a un costruttore che crea/crea un oggetto inizializzandolo con l'oggetto di classe identico, creato prima. Per creare un costruttore di copie, l'oggetto di classe esistente viene posizionato come argomento e i valori delle variabili di istanza vengono inizializzati con i valori accumulati nell'oggetto.

Esempio 1: applicazione di un "costruttore di copie" per copiare i valori degli oggetti "allocati" in Java

Questo esempio utilizza il "Copia costruttore"Per copiare i valori degli oggetti allocati da un altro oggetto creato avvolgendo l'oggetto allocato come argomento:

classprofile
Nome stringa;
Int Age;
Profilo (nome stringa, int age)
Questo.nome = nome;
Questo.età = età;

Profilo (profilo ob)
Sistema.fuori.println ("Copia costruttore invocato!");
Questo.nome = ob.nome;
Questo.età = ob.età;

Nel codice della classe sopra, applica i seguenti passaggi:

  • Prima di tutto, definisci una classe chiamata "Profilo".
  • Nella sua definizione, specificare le variabili fornite.
  • Successivamente, includi il costruttore di classe che comprende i parametri dichiarati identici a quelli specificati.
  • Nella definizione del costruttore, fare riferimento alle variabili specificate tramite "Questo"E assegnare loro gli argomenti passati.
  • Ora, crea un costruttore di copie con il parametro dichiarato.
  • Nota: "ob"Nel costruttore di copia punta all'oggetto di classe creata.
  • Nella sua definizione, allo stesso modo, fare riferimento alle variabili specificate e assegnare loro i valori già allocati tramite l'oggetto passato.

Ora, passiamo alle seguenti righe di codice:

CopyConstructor di classe pubblica
public static void main (string args [])
Profile Object1 = new Profile ("Harry", 18);
Profilo object2 = new Profile (Object1);
Sistema.fuori.println ("\ nbefore di modificare i valori:");
Sistema.fuori.println (Object1.nome + "" + oggetto1.età);
Sistema.fuori.println (Object2.nome + "" + object2.età);
Oggetto2.età = 24;
Sistema.fuori.println ("\ nafter valori di modifica:");
Sistema.fuori.println (Object1.nome + "" + oggetto1.età);
Sistema.fuori.println (Object2.nome + "" + object2.età);

Secondo questo codice:

  • Crea gli oggetti di classe usando "nuovo"Parola chiave e"Profilo()"Costruttore, rispettivamente.
  • L'oggetto precedente corrisponde al costruttore di prima classe che comprende i valori dichiarati.
  • Quest'ultimo oggetto creato si riferisce al costruttore di copie.
  • Ora visualizza i valori di oggetti uno per uno.
  • A questo punto, entrambi i valori dell'oggetto mostrano valori identici poiché l'ex oggetto è avvolto come argomento di costruttore (copiato).
  • Nel passaggio successivo, allocare un nuovo valore a quest'ultimo oggetto.
  • Infine, visualizzare i valori degli oggetti aggiornati dopo l'allocazione.

Intero codice

Profilo di classe
Nome stringa;
Int Age;
Profilo (nome stringa, int age)
Questo.nome = nome;
Questo.età = età;

Profilo (profilo ob)
Sistema.fuori.println ("Copia costruttore invocato!");
Questo.nome = ob.nome;
Questo.età = ob.età;
CopyConstructor di classe pubblica
public static void main (string args [])
Profile Object1 = new Profile ("Harry", 18);
Profilo object2 = new Profile (Object1);
Sistema.fuori.println ("\ nbefore di modificare i valori:");
Sistema.fuori.println (Object1.nome + "" + oggetto1.età);
Sistema.fuori.println (Object2.nome + "" + object2.età);
Oggetto2.età = 24;
Sistema.fuori.println ("\ nafter valori di modifica:");
Sistema.fuori.println (Object1.nome + "" + oggetto1.età);
Sistema.fuori.println (Object2.nome + "" + object2.età);

Produzione

In questo output, si può analizzare che i valori degli oggetti allocati sono avvolti nel costruttore di copia in modo appropriato.

Prima di procedere all'esempio successivo, assicurarsi di includere il seguente pacchetto per abilitare l'input dell'utente:

Importa Java.util.Scanner;

Esempio 2: applicazione di un "costruttore di copie" per copiare i valori degli oggetti "Input utente" in Java

In questo esempio, il "Copia costruttore"Può essere applicato per copiare i valori degli oggetti di input utente accumulando l'oggetto di classe già creato come argomento di costruzione di quest'ultimo oggetto:

ClassProfileData
Nome stringa; Int Age;
ProfileData (nome stringa, int age)
Questo.nome = nome;
Questo.età = età;
ProfileData (Profiledata ob)
Sistema.fuori.println ("Copia costruttore invocato!");
Questo.nome = ob.nome; Questo.età = ob.età;
voidShow ()
Sistema.fuori.println ("Il nome è:"+questo.nome);
Sistema.fuori.println ("L'età è:"+questo.età);
publicclasscopyconstructor2
publicstaticVoidMain (string args [])
Scanner Object = new Scanner (Sistema.In);
Sistema.fuori.println ("Immettere il nome:");
String Name = Object.NextLine ();
Sistema.fuori.println ("Enter the Age:");
int age = oggetto.NextInt ();
ProfileData Object1 = new ProfileData (nome, età);
Oggetto1.spettacolo();
ProfileData Object2 = new ProfileData (Object1);
Oggetto2.spettacolo(); oggetto.vicino();

Applicare i seguenti passaggi, come previsto nelle righe di codice sopra:

  • Ricorda gli approcci discussi per definire una classe e includere rispettivamente il costruttore e il costruttore di copie.
  • Successivamente, definisci la funzione denominata "spettacolo()"Per visualizzare i valori degli oggetti passati.
  • Nel "principale()Metodo ", crea un"Scanner"Oggetto usando il"nuovo"Parola chiave e"Scanner()"Costruttore, rispettivamente.
  • IL "Sistema.In"Il parametro legge l'input dell'utente,"Nextline ()" e il "NextInt ()"Metodi garantiscono l'input dell'utente come"Corda", E "Numero intero"Rispettivamente.
  • Ora, crea un oggetto di classe chiamato "Oggetto1"Tramite l'approccio discusso e passare i valori di input dell'utente come argomenti. Inoltre, visualizza questi valori tramite la funzione di classe invocata "spettacolo()".
  • Nel passaggio successivo, crea un altro oggetto di classe e passa l'oggetto precedente come argomento del costruttore di copia in modo tale che i valori di input dell'utente si accumulano in precedenza in questo oggetto.
  • Infine, visualizzare i valori utilizzando la funzione accessibile "spettacolo()"E chiudi il"Scanner"Con l'aiuto dell'associazione"vicino()" metodo.

Produzione

Il risultato sopra indica che il costruttore di copie viene invocato e che i valori degli oggetti vengono accumulati di conseguenza.

Conclusione

IL "Copia costruttore"In Java corrisponde a un costruttore che crea/crea un oggetto inizializzandolo con lo stesso/identico oggetto di classe, creato prima. Questo costruttore funziona in modo tale che l'oggetto già creato sia avvolto come argomento. Questo blog ha guidato usando e implementando il "Copia costruttore"In Java.