Costruttori Java


Costruttori Java

Un costruttore in Java è un metodo speciale utilizzato per inizializzare gli oggetti. Il costruttore viene chiamato quando viene creato un oggetto di una classe. Può essere utilizzato per impostare i valori iniziali per gli attributi dell'oggetto:

Esempio

Crea un costruttore:

// Create a Main class
public class Main {
  int x;  // Create a class attribute

  // Create a class constructor for the Main class
  public Main() {
    x = 5;  // Set the initial value for the class attribute x
  }

  public static void main(String[] args) {
    Main myObj = new Main(); // Create an object of class Main (This will call the constructor)
    System.out.println(myObj.x); // Print the value of x
  }
}

// Outputs 5

Nota che il nome del costruttore deve corrispondere al nome della classe e non può avere un tipo restituito (come void).

Si noti inoltre che il costruttore viene chiamato quando viene creato l'oggetto.

Tutte le classi hanno costruttori di default: se non crei tu stesso un costruttore di classi, Java ne crea uno per te. Tuttavia, non è possibile impostare i valori iniziali per gli attributi degli oggetti.


Parametri del costruttore

I costruttori possono anche prendere parametri, che vengono utilizzati per inizializzare gli attributi.

L'esempio seguente aggiunge un int yparametro al costruttore. All'interno del costruttore impostiamo x su y (x=y). Quando chiamiamo il costruttore, passiamo un parametro al costruttore (5), che imposterà il valore di x a 5:

Esempio

public class Main {
  int x;

  public Main(int y) {
    x = y;
  }

  public static void main(String[] args) {
    Main myObj = new Main(5);
    System.out.println(myObj.x);
  }
}

// Outputs 5

Puoi avere tutti i parametri che vuoi:

Esempio

public class Main {
  int modelYear;
  String modelName;

  public Main(int year, String name) {
    modelYear = year;
    modelName = name;
  }

  public static void main(String[] args) {
    Main myCar = new Main(1969, "Mustang");
    System.out.println(myCar.modelYear + " " + myCar.modelName);
  }
}

// Outputs 1969 Mustang