Java - Costruttori
Un costruttore inizializza un oggetto quando viene creato. Ha lo stesso nome della sua classe ed è sintatticamente simile a un metodo. Tuttavia, i costruttori non hanno un tipo restituito esplicito.
In genere, si utilizzerà un costruttore per fornire valori iniziali alle variabili di istanza definite dalla classe o per eseguire qualsiasi altra procedura di avvio richiesta per creare un oggetto completamente formato.
Tutte le classi hanno costruttori, che tu ne definisca uno o meno, perché Java fornisce automaticamente un costruttore predefinito che inizializza tutte le variabili membro a zero. Tuttavia, una volta definito il proprio costruttore, il costruttore predefinito non viene più utilizzato.
Sintassi
Di seguito è riportata la sintassi di un costruttore:
class ClassName {
ClassName() {
}
}
Java consente due tipi di costruttori:
- Nessun argomento costruttori
- Costruttori parametrizzati
Nessun argomento costruttori
Poiché il nome specifica che i costruttori senza argomenti di Java non accettano alcun parametro, utilizzando questi costruttori le variabili di istanza di un metodo verranno inizializzate con valori fissi per tutti gli oggetti.
Esempio
Public class MyClass {
Int num;
MyClass() {
num = 100;
}
}
Chiameresti il costruttore per inizializzare gli oggetti come segue
public class ConsDemo {
public static void main(String args[]) {
MyClass t1 = new MyClass();
MyClass t2 = new MyClass();
System.out.println(t1.num + " " + t2.num);
}
}
Ciò produrrebbe il seguente risultato
100 100
Costruttori parametrizzati
Molto spesso, avrai bisogno di un costruttore che accetti uno o più parametri. I parametri vengono aggiunti a un costruttore nello stesso modo in cui vengono aggiunti a un metodo, è sufficiente dichiararli tra parentesi dopo il nome del costruttore.
Esempio
Ecco un semplice esempio che utilizza un costruttore:
// A simple constructor.
class MyClass {
int x;
// Following is the constructor
MyClass(int i ) {
x = i;
}
}
Chiameresti il costruttore per inizializzare gli oggetti come segue:
public class ConsDemo {
public static void main(String args[]) {
MyClass t1 = new MyClass( 10 );
MyClass t2 = new MyClass( 20 );
System.out.println(t1.x + " " + t2.x);
}
}
Ciò produrrebbe il seguente risultato:
10 20