Académique Documents
Professionnel Documents
Culture Documents
POO
D I A G R A M M E D E C L A S S ES , VO C A B U L A I R E , L E C T U R E
PA RTIE 1 : U N E C LA S S E
PA RTIE 2 : LIE N 1 EN T R E 2 C L A S S E S
PA RTIE 3 : LIE N * EN T R E 2 C L A S S E S
Brainstorming Vocabulaire POO
Classes, Objet, Propriétés, accesseurs, privé, public,
constructeur, instanciation, méthodes,
Paramètre, surcharge
A quoi sert une classe ? Intérêts de la POO ?
A quoi sert une classe ?
centraliser au sein d'un même endroit (dans le code) les caractéristiques communes d'une entité
(les propriétés) et ses comportements (les methods).
Cette classe permettra d'instancier autant d'objets voulus qui auront le même modèle (mêmes
caractéristiques et mêmes comportements)
Intérêts de la POO ?
• Uniformité du code (une classe est toujours organisée de la même manière, propriétés,
accesseur, constructeur et méthodes)
• Facilité de maintenance : tout est au même endroit et un ajout de méthode impactera tous les
objets associés (utilisation immediate)
• Travail à plusieurs : chaque classe est indépendante donc facile de travailler à plusieurs
• Réutilisation : on peut réutiliser une même classe dans plusieurs projets
Diagramme de classes
Lecture du diagramme de classes
Replacer le vocabulaire de la POO sur l’ensemble des classes proposées
Quelle différence entre la méthode ajouterAsso et supprimerAsso ?
Quelle particularité ont les méthodes listerAsso ?
Faites 4 phrases exprimant les liens entre ces 3 classes. Que signifie la flèche sur le
lien ?
Partie 1 : classe Membre
Ecrire le code (ou pseudo-code) associé à la définition des propriétés de la classe
MEMBRE présentée dans le diagramme de classe.
public class MEMBRE
{
private string nom;
private string prenom;
private string ville;
private string tel;
Partie 1 : classe Membre
Ecrire le constructeur de la classe MEMBRE.
public MEMBRE(string unN, string unP)
{
nom = unN;
prenom = unP;
}
constructeur paramétré
On peut y ajouter les autres propriétés avec des valeurs par défaut :
ville = "Angers";
Partie 1 : classe Membre
Peut-on en écrire un autre ?
public MEMBRE(string unN, string unP, string uneV, string tel )
{
nom = unN; Propriété = paramètre ;
prenom = unP;
ville = uneV;
this.tel = tel;
}
constructeur plein valorisant toutes les propriétés
this : pour faire référence à la propriété
Partie 1 : classe Membre
Ecrire les accesseurs permettant de lire et de modifier le téléphone de ce membre.
Public void setTel(string nouvTelPortM) // accesseur SET pour modifier la propriété
{
tel = nouvTelPortM;
}
- déclaration - instanciation
Partie 1 : classe Membre
M1 vient de changer son numéro de téléphone portable. Modifier le !
M1.setTel("07-20-19-18-17");
// appel via l’accesseur SET de la propriété
Partie 1 : classe Membre
Afficher les informations du membre avec son nom, prénom et télportable
// ou possibilité d’ajouter une méthode Afficher() dans la classe qui retourne une
chaine de caractères avec toutes les informations
Partie 2 : lien 1 entre 2 classes
public ASSOCIATION(string nomA, string uneDescr, string typeActivite, int nbA, MEMBRE unMembre)
{
this.nomA = nomA;
description = uneDescr;
this.typeActivite = typeActivite;
nbAdherents = nbA;
lePresident = unMembre;
}
Partie 2 : lien 1 entre 2 classes
Ecrire la méthode getNbAdherents() qui récupérer le nombre d'adhérents de
l'association
}
return false;
}
Partie 3 : lien * entre 2 classes
Ecrire les méthodes surchargées listerAsso() de la classe FORUM.
la première retourne le nombre d'associations qui ont un président qui n'habite la ville du Forum.
public int listerAsso()
{
◦ int valeurRetour = 0 ;
valeurRetour ++ ;
}
◦ return valeurRetour;
}
Partie 3 : lien * entre 2 classes
la deuxième liste les associations ayant un nombre d'adhérents supérieur à celui passé en paramètre.
public List<Association> listerAsso(int nbAdh)
{
List<Association> listeRetour = new List<Association>() ;
foreach (Association A in this.lesAssociations)
{
◦ if (A.getNbAdherents() >= nbAdh)
listeRetour.Add(A) ;
}
return listeRetour;
}
Partie 3 : lien * entre 2 classes
Quelles sont les règles à retenir pour l’écriture de méthodes surchargées ?