Exemples de code

Créer des objets

Ceci est un exemple de création d'objets en C#. Il permet de réviser quelques-uns des concepts de la programmation orientée objet (POO). Prenez le temps de bien analyser le code.

La classe Personne possède deux attributs (nom et age). Ces attributs sont privés. Une des bonnes pratiques de la POO consiste à forcer le code qui voudrait accéder aux attributs à passer par l'intermédiaire des méthodes publiques et des propriétés offertes par la classe.

La classe possède aussi une propriété (Age) qui remplace les deux méthodes suivantes :

public getAge()
{
    return age;
}

private setAge(int unAge)
{
    age = unAge;
}

Puisque cette propriété n'utilise pas explicitement l'attribut "age", ce dernier pourrait être enlevé (le compilateur fournirait automatiquement l'attribut).

La classe Personne possède deux constructeurs. Le constructeur paramétré utilise l'autoréférence "this" pour éviter la confusion entre le paramètre "nom" et l'attribut "nom". Cela évite d'avoir à inventer des identificateurs comme "unAge" pour éviter la confusion avec "age" (voir le code précédent).

class Program
{
    class Personne
    {
        // attributs (toujours privé)
        private string nom;
        private int age;

        // constructeur par défaut
        public Personne()
        {
            nom = "sans nom";
            Age = 50;
        }

        // constructeur avec paramètres
        public Personne(string nom, int age)
        {
            this.nom = nom;
            Age = age;
        }

        // propritétés
        public int Age { get; private set; }
        
        // méthodes
        public void Vieillir()
        {
            Age++;
        }
    }
        
    static void Main(string[] args)
    {
        // Déclaration d'une variable de la classe (ou pourrait dire du
        // type) Personne. Aucun objet n'a été créé ici, on a seulement
        // déclaré une variable qui pourra éventuellement "pointer" vers un
        // objet de la classe Personne.
            
        Personne bob;

        // bob -----------> null
    
        // Création d'un objet du type Personne (on dit aussi une instance
        // de la classe Personne). L'espace nécessaire pour contenir le nom
        // et l'âge est alloué en mémoire, puis le constructeur est appelé
        // pour initialiser l'objet.

        bob = new Personne();

        //                  +----------------+
        // bob -----------> | nom = sans nom |
        //                  | age = 50       |
        //                  +----------------+

        bob.Vieillir();

        //                  +----------------+
        // bob -----------> | nom = sans nom |
        //                  | age = 51       |
        //                  +----------------+   

        // Création d'un autre objet de type personne.
            
        Personne linda = new Personne("Linda", 47);

        //                  +----------------+
        // linda ---------> | nom = Linda    |
        //                  | age = 47       |
        //                  +----------------+

        // Aucune création d'objet, seulement une déclaration de variable
        // qu'on initialise à la valeur d'une autre variable qui pointe
        // déjà vers un objet.

        Personne meo = linda;

        //                  +----------------+
        // linda ---------> | nom = Linda    |
        // meo -----------> | age = 47       |
        //                  +----------------+

        meo.Vieillir();

        //                  +----------------+
        // linda ---------> | nom = Linda    |
        // meo -----------> | age = 48       |
        //                  +----------------+
    }
}