I Costruttori In Java

Indice Tutorial

Il costruttore di una classe è un metodo speciale utilizzato per creare una istanza
della classe (ripetiamo, istanza di una classe P = una variabile del tipo classe P).

Per definirlo, è sufficiente creare un metodo con lo stesso nome della classe.

Ipotizzando di avere una classe chiamata MyClass, creiamo un costruttore che prende in input un intero:

Esempio

public class Prova {

	 Prova(int l){
		 
	 }


}

Il costruttore viene invocato, in automatico, durante la creazione di una istanza, tramite la keyword new:

public static void main(String[] args) {
		
    	 Prova p = new Prova(2);
    	 
	}

Una classe può avere più costruttori, che si differenziano tra loro per il numero, e il tipo, di parametri in ingresso. Durante la creazione di una istanza, in base ai parametri passati a new, verrà selezionato il costruttore corrispondente.

Esempio

public class Prova {

	 Prova(int l){
		 
	 }
	 
	 Prova(int h, String g){
		 
	 }

     public static void main(String[] args) {
		
    	 Prova p = new Prova(2);//invocato costruttore con un parametro
    	 
    	 Prova p1 = new Prova(23, "ciao");//invocato costruttore con due parametri
    	 
	}
     
}

I costruttori sono utilizzati per inizializzare i campi della classe.

Esempio

public class Prova {
	int count;
	String nome;

	 Prova(int l){
		 count = l;
	 }
	 
	 Prova(int h, String g){
		 nome = g;
		 count = h;
	 }

     public static void main(String[] args) {
		
    	 Prova p = new Prova(2);
    	 
    	 Prova p1 = new Prova(23, "ciao");
    	 
	}
     
}

Un costruttore che non prende nessun parametro in input è detto costruttore di default.

Ipotizziamo di avere una classe in cui non è definito nessun costruttore

Esempio

public class Prova {


     public static void main(String[] args) {
		
    	 Prova p = new Prova();
    	 
	}
     
}

Il programma compila senza nessun problema.

Definiamo ora un costruttore che prenda un intero in ingresso

Esempio

public class Prova {

	Prova(int h){
		
	}
	
     public static void main(String[] args) {
		
    	 Prova p = new Prova();//errore di compilazione
    	 
	}
     
}

Appare, ora, un errore di compilazione alla riga in cui si crea una istanza.

Modifichiamo il codice, aggiungendo un costruttore con nessun parametro in input

Esempio

public class Prova {

	Prova(int h){
		
	}
	
	Prova(){
		
	}
     public static void main(String[] args) {
		
    	 Prova p = new Prova();
    	 
	}
     
}

Ora, l’errore di compilazione è scomparso.

Questo perché, se una classe non ha definito nessun costruttore, java, dietro le quinte, ne crea uno in automatico. Questo costruttore nascosto non ha nessun parametro in ingresso.

Nel momento in cui noi definiamo un costruttore, questa creazione di un costruttore nascosto non avviene più.

Per questo motivo il costruttore senza argomenti è detto di default, perché è il costruttore che una classe ha di default.

Video Lezione sui Costruttori in Java

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *