2. Sommaire
1. Définition d’une classe
2. Instanciation d’une classe
3. Constructeurs
4. Accès aux membres d’un objet
5. Les membres de classe
6. Encapsulation
7. Déclaration d’une propriété
3. Définition d’une classe
syntaxe
Syntaxe de définition d’une classe :
class nomClasse {
// Déclaration des attributs
...
// Définitions des méthodes
...
}
4. Définition d’une classe
déclaration d’un attribut
• La syntaxe de déclaration des attributs est la syntaxe
classique de déclaration des variables :
[accès] type nomAttrribut;
• Contrairement à C++, un attribut peut être initialisé lors
de sa déclaration.
• Tout attribut non explicitement initialisé l’est
automatiquement (0, 0.0, false ou chaîne vide).
• L’accès est privé par défaut
• Exemple :
float hauteur;
float largeur=2;
5. Définition d’une classe
définition d’une méthode
• Toute méthode doit être directement définie dans la classe
• Syntaxe:
[accès] typeRslt nomMethode([arg,…]){
<corps de la méthode>
}
• L’accès est privé par défaut
• Exemple :
public float surface(){
return (hauteur*largeur);// attributs visibles
}
6. Définition d’une classe
exemple
class Rectangle{
// déclaration des attributs
float hauteur;
float largeur;
// définition des méthodes
public float surface(){
return (hauteur * largeur);
}
public void setHauteur(float hauteur){
if (hauteur > 0)
this.hauteur = hauteur;
}
}
Nb : this est une référence qui remplace l’objet sur lequel la
méthode est invoquée
7. Instanciation d’une classe
• Une instance (ou objet) est de type référence
• Pour créer un objet d’une classe donnée, il faut :
• déclarer une référence à l’objet en question ;
NomClasse nomObjet;
• l’instancier par new
nomObjet = new NomClasse();
• Syntaxe réduite :
NomClasse nomObjet = new NomClasse();
• La libération de mémoire se fera par le Garbage Collector
• Exemples :
Rectangle r1 = new Rectangle();
8. Constructeur
présentation
• Un constructeur est une méthode particulière qui est appelée
lors de la création d’un objet.
• Un constructeur porte le même nom que la classe
• Un constructeur peut admettre zéro, un ou plusieurs
arguments et n’a pas de valeur de retour (même pas void).
• Sa tâche principale est d’initialiser les attributs de l’objet.
• Il peut aussi ouvrir des fichiers ou des connexions.
• Si une classe ne définit pas explicitement de constructeur, un
constructeur par défaut sans arguments et qui n’effectue
aucune initialisation particulière est invoquée.
• Ce constructeur par défaut ne peut plus être invoqué s’il existe
un constructeur explicite
• Une classe peut admettre plusieurs constructeurs.
9. Constructeur
exemple
• Exemple 1 :
Rectangle(float h, float l){
hauteur=h;
largeur=l;
}
• Exemple 2 :
Rectangle(float dim){
hauteur=dim;
largeur=dim;
}
10. Constructeur
instanciation
• Syntaxe :
NomClasse nomObjet = new NomClasse(val1, val2,...);
• NB : le nombre et les types des valeurs d’initialisation doivent
se conformer à un constructeur
• Exemples :
Rectangle r1 = new Rectangle(8.5,11);
Rectangle r2 = new Rectangle(12.5);
11. Accès aux membres d’un objet
syntaxe
• Accès à un attribut :
nomObjet.nomAttribut
Exemple :
r1.largeur = 13;
• NB : le principe de l’encapsulation interdit l’accès direct à un
attribut.
• Accès à une méthode :
nomObjet.nomMéthode([arg1, ...])
Exemple :
Console.Write("La surface du premier rectangle");
Console.WriteLine(" est de "+r1.surface());
12. Membres de classe
attribut et constante
• Attribut qui existe même si aucun objet de la classe n’est créé.
Exemple : le nombre de rectangles créés
• Déclaré en se servant du mot clé static
Exemple : public static byte nbRectanglesCrees=0;
• Accessible en le préfixant du nom de la classe suivi de .
Exemple : Rectangle.nbRectanglesCrees
• Une constante est un attribut de classe dont la valeur est fixe
durant toute l’exécution du programme
• Une constante de classe est déclarée sans le mot clé static mais
avec le mot clé const
Exemple : public const float TVA=0.18f;
13. Membres de classe
méthode
• Une méthode de classe exécute une action indépendante
d’une instance particulière de la classe
• Elle permet de manipuler des attributs ou des constantes de
classe
• Elle ne doit pas manipuler une variable d’instance
• Elle est déclarée avec le mot clé static.
• Elle est accessible comme un attribut de classe
14. Encapsulation
présentation
• L’encapsulation est implémentée par quatre types de
protection pour les membres d’une classe :
o public : accessible de partout
o internal : accessible que dans le namespace
o protected : accessible que dans la classe et dans ses
classes dérivées
o private : accessible que dans la classe.
• Par défaut, les membres d’une classe sont privés
15. Encapsulation
notion de propriété
• Propriété = un ou deux blocs de code, représentant un
getter et/ou un setter.
• Utilité :
o valider des données avant d'autoriser une modification ;
o effectuer une action à la suite d'une modification ;
• Syntaxe :
[accès] type nomPropriete{
get {
// code qui retourne le valeur
// d’un attribut
}
set {
// code contenant le mot clé value pour
// modifier la valeur d’un attribut
}
}
16. Encapsulation
notion de propriété (exemple et application)
• Exemple
class Carre {
public double coté; // attribut
public double Aire { // propriété
get { return coté*coté; }
set { coté = Math.Sqrt(value); }
}
}
Carre c1 = new Carre();
c1.Aire = 9; // appel de set
Console.WriteLine(c1.coté); // affichage: 3
Carre c2 = new Carre();
c2.coté = 4;
Console.WriteLine(c2.Aire); // appel de get, affichage: 16