Csharp2 : classes et objets

364 vues

Publié le

Csharp2 : classes et objets

Publié dans : Logiciels
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
364
Sur SlideShare
0
Issues des intégrations
0
Intégrations
4
Actions
Partages
0
Téléchargements
0
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Csharp2 : classes et objets

  1. 1. Classes & objets M. DIENG Abdoulaye Introduction au C#
  2. 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. 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. 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. 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. 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. 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. 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. 9. Constructeur exemple • Exemple 1 : Rectangle(float h, float l){ hauteur=h; largeur=l; } • Exemple 2 : Rectangle(float dim){ hauteur=dim; largeur=dim; }
  10. 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. 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. 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. 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. 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. 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. 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

×