logo

Costruttori in Java

  1. Tipi di costruttori
    1. Costruttore predefinito
    2. Costruttore parametrizzato
  2. Sovraccarico del costruttore
  3. Il costruttore restituisce qualche valore?
  4. Copiare i valori di un oggetto in un altro
  5. Il costruttore esegue altre attività invece dell'inizializzazione

In Giava , un costruttore è un blocco di codici simile al metodo. Si chiama quando un'istanza del classe è creato. Al momento della chiamata al costruttore, la memoria per l'oggetto viene allocata nella memoria.

È un tipo speciale di metodo utilizzato per inizializzare l'oggetto.

Ogni volta che un oggetto viene creato utilizzando la parola chiave new(), viene chiamato almeno un costruttore.

Chiama un costruttore predefinito se non è disponibile alcun 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 con parametri.

Nota: Si chiama costruttore perché costruisce i valori al momento della creazione dell'oggetto. 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.

Linux quale
  1. Il nome del costruttore deve essere uguale al nome della classe
  2. Un costruttore non deve avere un tipo restituito esplicito
  3. Un costruttore Java non può essere astratto, statico, finale e sincronizzato

Nota: possiamo usare modificatori di accesso durante la dichiarazione di un costruttore. Controlla la creazione dell'oggetto. In altre parole, in Java possiamo avere un costruttore privato, protetto, pubblico o predefinito.

Tipi di costruttori Java

In Java esistono due tipi di costruttori:

  1. Costruttore predefinito (costruttore no-arg)
  2. Costruttore parametrizzato
Costruttori Java

Costruttore predefinito Java

Un costruttore è chiamato 'Costruttore predefinito' quando non ha alcun parametro.

Sintassi del costruttore predefinito:

 (){} 

Esempio di costruttore predefinito

In questo esempio stiamo creando il costruttore no-arg nella classe Bike. Verrà richiamato al momento della creazione dell'oggetto.
 //Java Program to create and call a default constructor class Bike1{ //creating a default constructor Bike1(){System.out.println('Bike is created');} //main method public static void main(String args[]){ //calling a default constructor Bike1 b=new Bike1(); } } 
Provalo adesso

Produzione:

 Bike is created 

Regola: se non è presente alcun costruttore in una classe, il compilatore crea automaticamente un costruttore predefinito.

Costruttore predefinito Java

D) Qual è lo scopo di un costruttore predefinito?

Il costruttore predefinito viene utilizzato per fornire i valori predefiniti all'oggetto come 0, null, ecc., a seconda del tipo.

Esempio di costruttore predefinito che visualizza i valori predefiniti

 //Let us see another example of default constructor //which displays the default values class Student3{ int id; String name; //method to display the value of id and name void display(){System.out.println(id+' '+name);} public static void main(String args[]){ //creating objects Student3 s1=new Student3(); Student3 s2=new Student3(); //displaying values of the object s1.display(); s2.display(); } } 
Provalo adesso

Produzione:

 0 null 0 null 

Spiegazione: Nella classe precedente, non stai creando alcun costruttore, quindi il compilatore ti fornisce un costruttore predefinito. Qui i valori 0 e null sono forniti dal costruttore predefinito.


Costruttore con parametri Java

Un costruttore che ha un numero specifico di parametri è chiamato costruttore parametrizzato.

Perché utilizzare il costruttore parametrizzato?

Il costruttore con parametri viene utilizzato per fornire valori diversi a oggetti distinti. Tuttavia, puoi anche fornire 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.

 //Java Program to demonstrate the use of the parameterized constructor. class Student4{ int id; String name; //creating a parameterized constructor Student4(int i,String n){ id = i; name = n; } //method to display the values void display(){System.out.println(id+' '+name);} public static void main(String args[]){ //creating objects and passing values Student4 s1 = new Student4(111,'Karan'); Student4 s2 = new Student4(222,'Aryan'); //calling method to display the values of object s1.display(); s2.display(); } } 
Provalo adesso

Produzione:

 111 Karan 222 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.

Costruttore sovraccarico in Java è una tecnica che consente di avere più di un costruttore con elenchi di parametri diversi. Sono disposti in modo che ogni costruttore svolga un compito diverso. Sono differenziati dal compilatore in base al numero di parametri nell'elenco e ai loro tipi.

Esempio di sovraccarico del costruttore

 //Java program to overload constructors class Student5{ int id; String name; int age; //creating two arg constructor Student5(int i,String n){ id = i; name = n; } //creating three arg constructor Student5(int i,String n,int a){ id = i; name = n; age=a; } void display(){System.out.println(id+' '+name+' '+age);} public static void main(String args[]){ Student5 s1 = new Student5(111,'Karan'); Student5 s2 = new Student5(222,'Aryan',25); s1.display(); s2.display(); } } 
Provalo adesso

Produzione:

 111 Karan 0 222 Aryan 25 

Differenza tra costruttore e metodo in Java

Esistono molte differenze tra costruttori e metodi. Sono riportati di seguito.

costruttore in Java
Costruttore JavaMetodo 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 non deve avere un tipo restituito.Un metodo deve avere un tipo restituito.
Il costruttore viene invocato implicitamente.Il metodo viene invocato esplicitamente.
Il compilatore Java fornisce un costruttore predefinito se non è presente alcun costruttore in una classe.Il metodo non viene comunque fornito dal compilatore.
Il nome del costruttore deve essere uguale al nome della classe.Il nome del metodo può essere uguale o meno al nome della classe.

Costruttori Java e metodi

Costruttore di copie Java

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

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

 //Java program to initialize the values from one object to another object. class Student6{ int id; String name; //constructor to initialize integer and string Student6(int i,String n){ id = i; name = n; } //constructor to initialize another object Student6(Student6 s){ id = s.id; name =s.name; } void display(){System.out.println(id+' '+name);} public static void main(String args[]){ Student6 s1 = new Student6(111,'Karan'); Student6 s2 = new Student6(s1); s1.display(); s2.display(); } } 
Provalo adesso

Produzione:

 111 Karan 111 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.

 class Student7{ int id; String name; Student7(int i,String n){ id = i; name = n; } Student7(){} void display(){System.out.println(id+' '+name);} public static void main(String args[]){ Student7 s1 = new Student7(111,'Karan'); Student7 s2 = new Student7(); s2.id=s1.id; s2.name=s1.name; s1.display(); s2.display(); } } 
Provalo adesso

Produzione:

 111 Karan 111 Karan 

D) Il costruttore restituisce qualche valore?

Sì, è l'istanza della classe corrente (non è possibile utilizzare il tipo restituito ma restituisce un valore).


Il costruttore può eseguire altre attività invece dell'inizializzazione?

Sì, come la creazione di oggetti, l'avvio di un thread, la chiamata di un metodo, ecc. Puoi eseguire qualsiasi operazione nel costruttore mentre la esegui nel metodo.


Esiste una classe Costruttore in Java?

SÌ.


Qual è lo scopo della classe Costruttore?

Java fornisce una classe Costruttore che può essere utilizzata per ottenere le informazioni interne di un costruttore nella classe. Si trova nel pacchetto java.lang.reflect.