SUPINFO International University

SUPINFO Institute of Information Technology
Laboratoire Microsoft




Tous les Articles du Laboratoire Microsoft

Présentation du C# (suite et fin)
Accueil > Articles > Développement
Auteurs 
Franklin-jaurès KONGBANG

Etudiant


 Tous les articles de cet auteur

3/5

Assez Bien


181929
141/429

Les classes

Une classe est une structure plus évoluée. Elle se déclare avec le mot clef class qui est précédé du mot clef de porté public afin d’être utilisée dans tout le programme.

Exemple de déclaration d’une classe :

public class MaClasse

{

}

 

Les membres d’une classe

 

Ce sont les champs de la classe. Ils sont précédés soit du mot clef  public, private ou protected. Le mot private est défini par défaut. Les variables déclarées public sont accessibles de partout dans le programme, tandis que les variables déclarées private sont accessibles uniquement dans la classe elle-même ou par des fonctions membres de cette classe. Nous parlerons du mot clef protected lorsqu’on abordera le chapitre de l’héritage.

 

public class MaClasse

{

      public string Nom;

      private int _age;

}

 

Le Constructeur

 

C’est une méthode (fonction)  appelée automatiquement lors de la création de l’instance (l’objet) de la classe en mémoire. Elle sert généralement  à initialiser les champs d’une classe.

public class MaClasse

            {

                  public string Nom;

                  private int _age;

                  public MaClasse(string Nom, int Age) //le constructeur

                  {

                        this.Nom = Nom;

                        _age = Age;

                  }

            }

 

Ici this me permettra de différencier mon champ de mon argument, car ceux ci portent le même nom. On observe qu’on n’a pas eu besoin d’utiliser this pour la variable _age car n’ayant pas la même orthographe que l’argument ( Age). Mais il est à noter que l’utilisation de this dans ce cas n’aurait pas causé de problème.

On a aussi une autre version de constructeur qui ne possède pas d’arguments, mais qui fait appel à un autre constructeur, soit de la même classe, soit de la classe dont elle dérive dans le cas de l’héritage (nous en reparlerons dans le chapitre de l’héritage).

public class MaClasse

            {

                  public string Nom;

                  private int _age;

                  public MaClasse(string Nom, int Age) //le constructeur

                  {

                        this.Nom = Nom;

                        _age = Age;

                  }

                  public MaClasse():this("ton_nom",0) //constructeur faisant appel au premier constructeur

                  {

                  }

            }

 

Les méthodes

 

Les fonctions d’une classe sont appelées des méthodes. Une méthode est accessible en dehors de la classe lorsqu’elle est déclarée publique. Mais dans le cas où elle est déclarée private, seule la classe elle-même pourra y accéder.

Soit l’exemple ci-dessous 

public class MaClasse

            {

                  public string Nom;

                  private int _age;

                  private string _prof;

                  public MaClasse(string Nom, int Age) //le constructeur

                  {

                        this.Nom = Nom;

                        _age = Age;

                  }

                  public MaClasse():this("ton_nom",0)    //constructeur faisant appel au premier constructeur

                  {

                  }

                  private void Profession()

                  {

                        this._prof = "étudiante"; // _prof est initialisée

                  }  

                  public void Affichetoi()

                  {

                        Console.WriteLine("je m'appelle {0}, j'ai {1} ans et je suis {2} . Merci", Nom, _age, _prof);

                  }

            }

            [STAThread]

            static void Main(string[] args)

            {

                                         //créons nos filles

                  MaClasse fille1 = new MaClasse("lolo",20);           //le construteur MaClasse me permet d'initialiser mes champs, même ceux déclarés "private", car le constructeur est membre de la classe.

                  MaClasse fille2 = new MaClasse("chouchou",22);

                  MaClasse fille3 = new MaClasse();                    //avec fille3,je décide d'initialiser mes champs sans l'aide du constructeur

                  fille3.Nom = "mimi";         //je peux donc initialiser le champ "Nom" car déclaré public, donc accessible partout

                                                        //les autres champs sont déclarés "private", et par conséquent ne sont accessibles que depuis la classe elle même. Je ne peux donc pas les initialiser dans le Main().

//Dès lors, faisons appelle à nos méthodes

                  fille1.Affichetoi();         //ici je fais appelle à Affichetoi() depuis ma fonction Main() parce que méthode déclarée "public"

                  fille2.Affichetoi();        

//mais par contre Profession() n'est pas accessible depuis la fonction main car déclarée "private"

                  fille3.Affichetoi();

                  Console.ReadLine();          //pour que la fenêtre dos ne se ferme pas toute seule                

            }

}  

 

Après compilation du programme, on obtient ceci :

 

 

On remarque qu’il manque une information : c’est  la profession, représentée par la variable « prof ». Mini, elle a 0 ans parce qu’elle n’a pas pu initialiser son champ _age qui n’est accessible que depuis la classe elle même (par une méthode membre par exemple). Nous allons maintenant faire appel à la méthode Profession()  qui a déjà initialisé le champ « _prof ». Mais comme la méthode Profession() est déclarée private, elle ne pourra être appelée que dans la classe.

Nous allons donc reprendre l’exemple précédent et faire appel à la méthode Profession() dans la méthode Affichetoi() qui est déjà appelée depuis la fonction principale Main().

public class MaClasse

            {

                  public string Nom;

                  private int _age;

                  private string _prof;                         

                  public MaClasse(string Nom, int Age) //le constructeur

                  {

                        this.Nom = Nom;

                        _age = Age;

                  }

                                   //constructeur faisant appel au premier constructeur

                  public MaClasse():this("ton_nom",0)

                  {

                  }

                  private void Profession()

                  {

                        this._prof = "étudiante"; // _prof est initialisée

                  }

                  public void Affichetoi()

                  {

                        Profession();     //on appelle la méthode Profession

                        Console.WriteLine("je m'appelle {0}, j'ai {1} ans et je suis {2} . Merci", Nom, _age, _prof);

                  }

            }

            [STAThread]

            static void Main(string[] args)

            {

                  MaClasse fille1 = new MaClasse("lolo",20);           //le construteur MaClasse me permet d'initialiser mes champs, même ceux déclarés "private", car le constructeur est membre de la classe.

                  MaClasse fille2 = new MaClasse("chouchou",22);

                  MaClasse fille3 = new MaClasse();                    //je décide d'initialiser mes champs sans l'aide du     constructeur

                  fille3.Nom = "mimi";         //j'initialise donc le champ "Nom" car déclaré public, donc accessible de partout

                                                        //les autres champs sont déclarés "private", donc ne sont accessibles que depuis la classe elle même.

                                         //Dès lors, faisons appelle à nos méthodes

                  fille1.Affichetoi();         //ici je fais appelle à Affichetoi() depuis ma fonction Main() parce que méthode déclarée "public"

                  fille2.Affichetoi();         //mais par contre Profession() n'est pas accessible depuis la fonction main car déclarée "private"

                  fille3.Affichetoi();

                  Console.ReadLine();          //pour que la fenêtre dos ne se ferme pas toute seule

            }

 

On obtient :

 

 


Sommaire
1. Les collections
2. les structures
3. les classes
4. Les propriétés
5. Les exceptions
6. Héritage et polymorphisme
7. Les interfaces
8. Surcharge d’opérateurs
9. La délégation
10. Les évènements



En Savoir Plus 
Evaluez cet article 


Pour afficher ou poster un commentaire, cliquez sur ce lien : Forum-Microsoft



Retrouvez ci-dessous les autres sections du Laboratoire Microsoft