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();
}
}