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 (state)
- son comportement (behavior), 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
Une classe d'objet définit ses membres :
- les attributs qui constituent sont état
- ses méthodes, qui implémentent son comportement
Chaque membre est caractérisé par un un nom, un type et une visibilité (privé, protégé, public).
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
ouinterface
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
Notes
Record classes
inventées par C. A. R. Hoare en 1965 Hoare, C. A. R.: "Record Handling", 1965