In Java, un costruttore è un blocco di codici simile al metodo. Viene chiamato quando viene creata unistanza della classe. Al momento della chiamata al costruttore, la memoria per loggetto viene allocata nella memoria.
È un tipo speciale di metodo che viene utilizzato per inizializzare loggetto.
Ogni volta che un oggetto viene creato utilizzando la parola chiave new (), viene chiamato almeno un costruttore.
Chiama un costruttore predefinito se non è disponibile un costruttore nella classe. In tal caso, il compilatore Java fornisce un costruttore predefinito per impostazione predefinita.
Esistono due tipi di costruttori in Java: costruttore no-arg e costruttore parametrizzato.
Nota: è chiamato costruttore perché costruisce i valori al momento della creazione delloggetto. Non è necessario scrivere un costruttore per una classe. È perché il compilatore Java crea un costruttore predefinito se la tua classe non ne ha.
Regole per la creazione del costruttore Java
Ci sono due regole definite per il costruttore.
- Il nome del costruttore deve essere uguale al nome della sua classe
- Un costruttore non deve avere un tipo di ritorno esplicito
- Un costruttore Java non può essere astratto, statico, finale e sincronizzato
Nota: possiamo utilizzare modificatori di accesso durante la dichiarazione di un costruttore. Controlla la creazione delloggetto. In altre parole, possiamo avere un costruttore privato, protetto, pubblico o predefinito in Java.
Tipi di costruttori Java
Esistono due tipi di costruttori in Java:
- Costruttore predefinito (costruttore senza argomenti)
- Costruttore parametrizzato
Costruttore predefinito Java
Un costruttore è chiamato “Costruttore predefinito” quando “non ne ha parametro.
Sintassi del costruttore predefinito:
Esempio di costruttore predefinito
In questo esempio, stiamo creando il no- arg costruttore nella classe Bike. Verrà richiamato al momento della creazione delloggetto.
Provalo ora
Risultato:
Bike is created
Regola: Se non cè un costruttore in una classe, il compilatore crea automaticamente un costruttore predefinito.
D) Qual è lo scopo di un costruttore predefinito?
Il costruttore predefinito viene utilizzato per fornire i valori predefiniti alloggetto come 0, null, ecc., a seconda del tipo.
Esempio di costruttore predefinito che visualizza i valori predefiniti
Provalo ora
Risultato:
0 null0 null
Spiegazione: nella classe precedente, non sei creando qualsiasi costruttore in modo che il compilatore fornisca un costruttore predefinito. Qui i valori 0 e null sono forniti dal costruttore predefinito.
Costruttore parametrizzato Java
Un costruttore che ha un numero specifico di parametri è chiamato costruttore parametrizzato.
Perché utilizzare il costruttore parametrizzato?
Il costruttore parametrizzato viene utilizzato per fornire valori diversi a oggetti distinti. Tuttavia, puoi fornire anche gli stessi valori.
Esempio di costruttore parametrizzato
In questo esempio, abbiamo creato il costruttore della classe Student che ha due parametri. Possiamo avere un numero qualsiasi di parametri nel costruttore.
Provalo ora
Risultato:
111 Karan222 Aryan
Sovraccarico del costruttore in Java
In Java, un costruttore è proprio come un metodo ma senza tipo restituito. Può anche essere sovraccaricato come i metodi Java.
Il sovraccarico del costruttore in Java è una tecnica per avere più di un costruttore con diversi elenchi di parametri. Sono organizzati in modo che ogni costruttore esegua unattività diversa. Sono differenziati dal compilatore per il numero di parametri nellelenco e il loro tipo.
Esempio di sovraccarico del costruttore
Provalo ora
Risultato:
111 Karan 0222 Aryan 25
Differenza tra costruttore e metodo in Java
Ci sono molte differenze tra costruttori e metodi. Sono forniti di seguito.
Java Constructor | Metodo Java |
---|---|
Un costruttore viene utilizzato per inizializzare lo stato di un oggetto. | Un metodo viene utilizzato per esporre il comportamento di un oggetto. |
Un costruttore deve non ha un tipo di ritorno. | Un metodo deve avere un tipo di ritorno. |
Il costruttore viene invocato implicitamente. | Il metodo viene invocato esplicitamente. |
Il compilatore Java fornisce un costruttore predefinito se non si dispone di alcun costruttore in una classe. | Il metodo non è fornito da il compilatore in ogni caso. |
Il nome del costruttore deve essere lo stesso del nome della classe. | Il nome del metodo può o non può essere lo stesso della classe nome. |
Java Copy Constructor
Non esiste un costruttore di copie in Java.Tuttavia, possiamo copiare i valori da un oggetto a un altro come il costruttore di copie in C ++.
Ci sono molti modi per copiare i valori di un oggetto in un altro in Java. Sono:
- Per costruttore
- Assegnando i valori di un oggetto a un altro
- Con il metodo clone () della classe Object
In questo esempio, copieremo i valori di un oggetto in un altro utilizzando il costruttore Java.
Provalo ora
Risultato:
111 Karan111 Karan
Copia di valori senza costruttore
Possiamo copiare i valori di un oggetto in un altro assegnando i valori degli oggetti a un altro oggetto. In questo caso, non è necessario creare il costruttore.
Provalo ora
Risultato:
111 Karan111 Karan
D) Il costruttore restituisce un valore?
Sì, è listanza della classe corrente (non è possibile utilizzare il tipo restituito ma restituisce un valore).
Il costruttore può eseguire altre attività invece dellinizializzazione?
Sì, come la creazione di oggetti, lavvio di un thread, la chiamata di un metodo, ecc. Puoi eseguire qualsiasi operazione nel costruttore mentre esegui il metodo.
Esiste una classe Constructor in Java?
Sì.
Qual è lo scopo della classe Constructor?
Java fornisce una classe Constructor che può essere utilizzato per ottenere le informazioni interne di un costruttore nella classe. Si trova nel pacchetto java.lang.reflect.