Costruttore di una classe (parola chiave this, new)

ivan slavinsky

Esiste un metodo particolare che ha lo stesso nome della classe di partenza: questo è il costruttore della classe, ovvero il metodo che viene automaticamente invocato quando si istanzia un oggetto a partire dalla classe stessa. 

Esso serve per allocare un’opportuna area di memoria e dedicarla all’oggetto che si è creato o meglio si è istanziato.

Uno delle caratteristiche fondamentali del linguaggio Java è la rimozione automatica degli oggetti non più utilizzati liberando lo sviluppatore software da questa incombenza. Tutti gli oggetti istanziati, in un programma Java, sono individuati da un riferimento alla posizione che occupano nello Heap.

Heap: significa letteralmente cumulo, ossia è l’area di memoria nella quale sono allocati gli oggetti istanziati a partire dalle classi utilizzando la parola chiave new del lingiaggio; all’inizio dell’esecuzione di un programma lo heap viene allocato in base ad una dimensione predeterminata, ma nel corso dell’esecuzione la dimensione si adatta dinamicamente al numero ed alla dimensione deglo oggetti creati.

La JVM attiva periodicamente la garbage collector (letteralmente “raccoglitore di spazzatura”) che è in grado di rilevare gli oggetti non più riferiti per recuperare l’area di memoria da essi occupata per renderla nuovamente disponibile.

Questo esempio mette in evidenza moltissime cose:

public class costruttore {
private int a;
private int b;

public costruttore(int a, int b) {
this.a=a;
this.b=b;
}

public int area() {
int c;
c=a*b;
return c;
}

public static void main(String[] args) {
costruttore x;
x= new costruttore(3,4);
System.out.println(x.area());
}

}

 

  • Ho definito due variabili private

private int a;
private int b;

significa che possono essere viste solo all’interno della classe costruttore e tutti i suoi metodi possono usarle. Per meglio capire la differenza; la variabile c, che è usata nel metodo area, esiste solo nel metodo area ma non può essere usata nel metodo main perché non è visibile.

  • ecco il costruttore

public costruttore(int a, int b) {
this.a=a;
this.b=b;
}

usa lo stesso nome della classe, gli argomenti del metodo costruttore devono essere dello stesso tipo delle variabili private precedentemente definite e pure con lo stesso nome

(provate a cambiare il tipo e mettere un nome diverso! Si vedrà che non si riesce a creare l’oggetto)

la parola this permette l’assegnazione alla variabile a del metodo costruttore del valore a della classe quando viene istanziata. In pratica si passa al metodo costruttore i valori di a e di b, come in una normale funzione e l’area di memoria acquisisce quel valore.

  • nella funzione main inizializzo con opportuni valori gli oggetti della classe costruttore.

x= new costruttore(3,4);

la parola chiave new chiama il metodo costruttore passandogli i valori 3 e 4.

Questa voce è stata pubblicata in Senza categoria. Contrassegna il permalink.

Lascia un commento

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