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