Bases de la POO : Encapsulation

Encapsulation : Masquage de l’état interne et des fonctionnalités d’un objet et autorise uniquement l’accès via un ensemble public de fonctions. (source)

Mots clés: public, private, protected, get;, set;

Version 1 de l’accessibilité et protection des membres:

public class Program
{
    static void Main()
    {
        Character character = new Character();
        character.Stats();
    }
    
}

public class Character
{
    private string name = "Gordon";
    private int healthPoints = 100;

    // méthode décomposée du get; set;
    public void SetName(string newName)
    {
        name = newName;
    }

    public string GetName()
    {
        return name;
    }

    public void SetHealthPoints(int newHp)
    {
        if (newHp < 0)
        {
            newHp = 0;
        }
        if (newHp > 100)
        {
            newHp = 100;
        }

        healthPoints = newHp;
    }

    public void Stats()
    {
        Console.WriteLine($"Name: {name} | HP: {healthPoints}");
        Console.Read();
    }
}

Version 2 « optimisée » :

public class Program
{
    static void Main()
    {
        Character character = new Character("Gordon", 100);
        character.Stats();
    }
    
}

public class Character
{
    public string name { get; private set; } // Il faut mettre ce champ en "public" pour proteger le set
    private int healthPoints = 100;

    public Character(string newName, int newHp)
    {
        name = newName;

        if (newHp < 0)
        {
            newHp = 0;
        }
        if (newHp > 100)
        {
            newHp = 100;
        }

        healthPoints = newHp;
    }

    public void Stats()
    {
        Console.WriteLine($"Name: {name} | HP: {healthPoints}");
        Console.Read();
    }
}

Commentaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *