Cl

Classi in Java

12 esercizi

Informazioni su Classi

Il principale costrutto orientato agli oggetti in Java è la classe, che combina dati (campi), noti anche come variabili di istanza, e comportamento (metodi). I campi e i metodi di una classe sono noti come i suoi membri.

L'accesso ai membri può essere controllato tramite i modificatori di accesso; i due più comuni sono:

  • public: il membro è accessibile da qualsiasi codice (nessuna restrizione).
  • private: il membro è accessibile solo dal codice della stessa classe.

In Java, se non viene specificato alcun modificatore di accesso, il valore predefinito è la visibilità di package. In questo caso, il membro è visibile a tutte le classi definite nello stesso package.

Questo raggruppamento di dati e comportamento correlati, insieme alla restrizione dell'accesso ai membri, è noto come incapsulamento, uno dei concetti fondamentali della programmazione orientata agli oggetti.

Puoi pensare a una classe come a un modello per creare istanze di quella classe. Per creare un'istanza di una classe (nota anche come oggetto), si usa la parola chiave new:

class Car {
}

// Create two car instances
Car myCar = new Car();
Car yourCar = new Car();

I campi hanno un tipo e un nome (scritto in camelCase) e possono essere definiti in qualsiasi punto di una classe (il cui nome è in PascalCase).

class Car {
    // Accessible by anyone
    public int weight;

    // Only accessible by code in this class
    private String color;
}

A un campo si può facoltativamente assegnare un valore iniziale. Se un campo non specifica un valore iniziale, gli viene assegnato il valore predefinito del suo tipo. I valori dei campi di un'istanza si possono leggere e aggiornare usando la notazione con il punto.

class Car {
    // Will be set to specified value
    public int weight = 2500;

    // Will be set to default value (0)
    public int year;
}

Car newCar = new Car();
newCar.weight; // => 2500
newCar.year;   // => 0

// Update value of the field
newCar.year = 2018;

I campi privati di solito vengono aggiornati come effetto collaterale della chiamata a un metodo. Di solito questi metodi non restituiscono alcun valore; in tal caso il tipo restituito dovrebbe essere void:

class CarImporter {
    private int carsImported;

    public void importCars(int numberOfCars)
    {
        // Update private field
        carsImported = carsImported + numberOfCars;
    }
}

Nota che non è consuetudine usare campi pubblici nelle classi Java. Di norma si usano campi privati, a cui si accede tramite getter e setter.

All'interno di una classe, la parola chiave this fa riferimento alla classe corrente. Questo è particolarmente utile se un parametro ha lo stesso nome di un campo:

class CarImporter {
    private int carsImported;

    public void setImportedCars(int carsImported)
    {
        // Update private field from public method
        this.carsImported = carsImported;
    }
}
Modifica tramite GitHub Il collegamento si apre in una nuova finestra o scheda

Impara Classi