par Philippe.Genoud@imag.fr.

L'objet de ce document est de vous donner quelques élements de base vous permettant d'écrire vos premières applications java manipulant des objets. Sont abordés de manière extrêmement succinte les points suivants:

  • création (instanciation) d'objets,
  • références pour la désignation des objets,
  • utilisation des objets (envois de messages).

Création des objets

Les objets d'un même type manipulés par une application logicielle sont des exemplaires "fabriqués" à partir d'un modèle unique, modèle représenté par une classe.
Tous les objets sont utilisés et manipulés au moyen des méthodes de la classe dont ils sont un exemplaire.

La création d'un objet est obtenue au moyen de l'opérateur new appliqué à la classe dont on veut fabriquer un exemplaire.

Client unClient = new Client(nom, adresse);

La partie droite de l'expression d'affectation : new Client(nom, adresse) est une sous-expression dont l'évaluation provoque :

  1. la création d'un objet de la classe Client,
  2. l'initialisation de cet objet au moyen des valeurs désignées par nom et adresse passées en paramètres.
  3. le renvoi du nom interne du nouvel objet créé, résultat de l'évaluation.

L'initialisation de l'objet est effectuée par le code d'une méthode spéciale appelée constructeur. Cette méthode est définie dans la classe concernée et porte toujours le nom de cette classe, ici Client.

Les paramètres formels déclarés pour cette méthode spéciale doivent permettre d'initialiser correctement les caractéristiques (attributs, propriétés) de chaque nouvel objet créé.

Plusieurs constructeurs peuvent exister pour une même classe : chacun d'eux permet dans ce cas d'initialiser d'une façon différente les valeurs des propriétés de l'objet créé. Chaque constructeur d'une classe donnée possède donc une liste d'arguments différente de celle des autres constructeurs de la même classe. En revanche, tous les constructeurs d'une classe donnée portent un même nom : celui de la classe.

Références

Lors de la création (construction), le constructeur renvoie une valeur : la référence du nouvel objet. C'est cette référence, nom interne (adresse) de l'objet qui permet ensuite d'accéder à l'objet au travers de messages. Ainsi après l'évaluation de l'affectation

Client unClient = new Client(nom, adresse);

la variable unClient contient la référence de l'objet créé. Dans la suite du programme, cette variable permmettra de désigner (référencer) cet objet. En Java, la seule opérations autorisée sur les références est l'affectation.

Utilisation des objets

Une fois créé, un objet peut être utilisé par un programme (ou par un autre objet). L'utilisation d'un objet peut répondre selon le cas à différents besoins :

  • Interrogation ou affectation de la valeur d'une propriété de l'objet. Ex :

    // affiche le solde du compte du client
    System.out.println(unCompte.getSolde());
    
    // rend visible une forme géométrique
    leCercle.setVisible(true);

    On peut noter ici que les environnements de programmation intégrés (IDE) adoptentla convention suivante pour la désignation des méthodes d'accès aux propriétés caractéristiques d'un objet :

    • get<nom de la propriété pour l'interrogation (sélecteur de propriété)
    • set<nom de la propriété pour l'affectation d'une valeur (modificateur de propriété)
  • Opération modifiant l'état global de l'objet

    // crédite le compte du client de la somme de 10000F
    unCompte.credit(10000);
    
  • Utilisation d'un service. Ex :

    // demande la réservation d'une place à une agence de voyage
    Voyage unVoyage;
    unVoyage = uneAgenceDeVoyage.reserver(destination, dateDepart);
    // demande à un annuaire le numéro d'un abonné
    NumTelephone numero = annuaire.rechercherNumero(nom);
    

Important : quel que soit le cas, l'utilisation ou la manipulation d'un objet se fait au moyen des opérations ou méthodes qui ont été définies pour cet objet dans la classe (le modèle) dont il est issu.