Class : Classe d'objet.

Besoin

Définir un modèle commun pour un ensemble d'objets.

Analyse

Une classe d'objet définit :

  • la structure de son état
  • son comportement, c'est-à-dire les messages qu'on peut lui envoyer et comment il va y répondre.

De tels attributs ou méthodes membres d'une classes peuvent être rendus plus ou moins accessibles (publics, protégés, privés) du monde extérieur à l'objet.

Héritage

Une classe peut hériter d'une autre classe. Un objet de la classe fille possède alors implicitement toutes les caractéristiques (attributs et méthodes) de la classe mère, qu'elle peut ensuite affiner.

Conception

Les membres d'un classe d'objet définit ses membres :

  • le nom et le type et la visibilité de ses attributs
  • le nom, le type, la visibilité et les paramètres de ses méthodes

Implémentation

L'expression de la définition d'une classe dépendra du langage de programmation OO employé.

Exemple

Dans un fichier Personne.java :

public class Personne {
   private String nom;
   private int age;
   private String profession;
   private Addresse adresse;

   /**
    * Constructeur
    */

   public Personne (String telNom) {
      nom = telNom;
   }

   public String getLibelleCarteVisite() {
      return nom + ", " getProfession() + ", " + addresse;
   }

   protected void anniversaire() {
      age++;
   }

   /**
    * Accesseur en écriture
    */

   public setAddresse (Adresse telleAddresse) {
      adresse = telleAdresse;
   }

   /**
    * Accesseur en lecture
    */

   public String getProfession() {
      return profession;
   }
}

Notes

  • Un objet (une instance) d'une classe donnée est créé par une opération d'instanciation, généralement en exécutant une méthode particulière de la classe : un constructeur d'objet (d'instance).
  • certaines méthodes membres ont pour objectif de donner accès aux attributs (en lecture, écriture ou les deux). Ces méthodes sont appelées accesseurs et respectent typiquement des conventions de nommage (getTelAttribut, setTelAttribut).
  • En Java les tableaux sont considérés comme des classes. Leurs noms s'affichent alors en fonction du type de leurs éléments, comme suit (pour un tableau de profondeur 1, le nombre de [ se multipliant si cette profondeur augmente) :
    Type d'élément Nom affiché de la classe de tableau
    boolean [Z
    byte [B
    char [C
    classe ou interface de TelNom [LTelNom;
    double [D
    float [F
    int [I
    long [J
    short [S

Limitations

Une classe :

  • ne peut changer de structure à l'exécution

Conseils

  • Déclarer ses attributs membres privés
  • Déclarer les membres publics d'abord dans le code source de la classe

Exemples

Des exemples de classes d'objet sont :

  • Voiture
  • Avion
  • Personne
  • Facture
  • Idée