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.