Cl

Classes en Java

12 exercices

À propos de Classes

La principale construction orientée objet en Java est la classe, qui combine des données (champs), aussi appelés variables d'instance, et un comportement (méthodes). Les champs et les méthodes d'une classe constituent ses membres.

L'accès aux membres peut être contrôlé par des modificateurs d'accès, les deux plus courants étant :

  • public : le membre est accessible depuis n'importe quel code (sans restriction).
  • private : le membre n'est accessible que depuis le code de la même classe.

En Java, si aucun modificateur d'accès n'est précisé, la visibilité par défaut est la visibilité de paquet. Dans ce cas, le membre est visible par toutes les classes définies dans le même paquet.

Ce regroupement de données et de comportements liés, auquel s'ajoute la restriction de l'accès aux membres, s'appelle l'encapsulation, l'un des concepts fondamentaux de la programmation orientée objet.

On peut voir une classe comme un modèle pour créer des instances de cette classe. Pour créer une instance d'une classe (aussi appelée un objet), on utilise le mot-clé new :

class Car {
}

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

Les champs ont un type et un nom (écrit en camelCase) et peuvent être définis n'importe où dans une classe (écrite en PascalCase).

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

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

Il est possible d'attribuer une valeur initiale à un champ. Si un champ ne précise pas de valeur initiale, il prend la valeur par défaut de son type. On peut accéder aux valeurs des champs d'une instance et les modifier avec la notation pointée.

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;

Les champs privés sont généralement modifiés par effet de bord, lors de l'appel d'une méthode. Ces méthodes ne renvoient en général aucune valeur, auquel cas le type de retour doit être void :

class CarImporter {
    private int carsImported;

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

À noter qu'il n'est pas d'usage d'utiliser des champs publics dans les classes Java. On utilise généralement des champs privés, auxquels on accède via des getters et setters.

Au sein d'une classe, le mot-clé this fait référence à la classe courante. C'est particulièrement utile lorsqu'un paramètre porte le même nom qu'un champ :

class CarImporter {
    private int carsImported;

    public void setImportedCars(int carsImported)
    {
        // Update private field from public method
        this.carsImported = carsImported;
    }
}
Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet

Apprends Classes