HOWTO · Java

Qu'est-ce que l'instanciation signifie en Java

Cet article enseigne le sujet de l'instanciation en Java.

Sur cette page

En Java, instancier une classe consiste à créer l’un de ses objets ; new le crée et renvoie une référence que vous pouvez stocker et utiliser.

Que signifie instancier une classe en Java ?

Instancier une classe en Java consiste à créer un objet qui est une instance de cette classe. Une classe définit les champs et les méthodes que ses objets peuvent avoir ; un objet est une instance particulière qui possède ses propres valeurs de champs. Une variable comme car contient une référence vers cet objet, que vous pouvez utiliser pour accéder à ses champs et à ses méthodes.

Comment new crée un objet et un constructeur l’initialise

Cet exemple crée un objet Car, stocke sa référence dans car et appelle une méthode sur cet objet :

public class Car {
    private final String model;
    private final String color;

    Car(String model, String color) {
        this.model = model;
        this.color = color;
    }

    void display() {
        System.out.println("Car model: " + model + ", Color: " + color);
    }

    public static void main(String[] args) {
        Car car = new Car("Toyota", "Red");
        car.display();
    }
}

L’expression new Car("Toyota", "Red") crée une instance de Car et appelle son constructeur en lui transmettant deux arguments. L’expression produit une référence, que l’affectation stocke dans car. Un constructeur porte le nom de la classe et n’a pas de type de retour ; il peut utiliser ses paramètres pour définir les champs du nouvel objet. Le programme affiche le modèle et la couleur à l’aide de la référence.

Une classe n’a pas besoin d’un constructeur écrit explicitement. Java fournit un constructeur par défaut sans argument uniquement si la classe ne déclare aucun constructeur. Dès que vous déclarez un constructeur avec des paramètres, Java n’ajoute pas ce constructeur par défaut.

Une classe abstraite ne peut pas être instanciée directement, car elle peut laisser certaines méthodes à implémenter par ses sous-classes. Vous pouvez instancier une sous-classe concrète qui fournit ces implémentations.

Comment les objets conservent leur état et utilisent les méthodes d’instance

Chaque objet possède ses propres valeurs de champs d’instance. Par exemple, deux objets Car peuvent avoir des modèles et des couleurs différents, même s’ils utilisent tous deux la même méthode display() définie dans Car. Les méthodes d’instance agissent sur l’objet auquel la référence désigne au moment de l’appel ; dans car.display(), la méthode lit les champs de cette voiture. Créer un autre objet donne un nouvel ensemble de valeurs d’instance, sans modifier celles du premier objet.

Instanciation et initialisation en Java : quelle différence ?

L’instanciation consiste à créer un objet. L’initialisation consiste à établir son état initial. Ces étapes sont liées, mais elles ne sont pas synonymes : lors de la création d’un objet, Java attribue d’abord leurs valeurs par défaut aux champs d’instance ; les initialiseurs de champs et le constructeur peuvent ensuite leur donner des valeurs plus utiles. Des affectations ultérieures peuvent également modifier l’état de l’objet.

Dans l’exemple, new Car(...) est l’expression d’instanciation, tandis que le constructeur Car attribue les valeurs initiales de model et color. Un constructeur est l’un des moyens d’initialiser un objet ; cela ne rend pas les termes « instanciation » et « initialisation » interchangeables.