Un exemple qui ne correspond pas exactement avec ce que tu dois faire, mais qui illustre :
class Personnage
{
public int NombrePointsDeVie { get; private set; }
public Personnage()
{
this.NombrePointsDeVie = 100;
}
public bool EstVivant
{
get => this.NombrePointsDeVie > 0;
}
public void CoupDeLance()
{
this.NombrePointsDeVie -= 20;
}
}
Dans cet exemple, tu ne souhaites pas qu'un autre programmeur puisse accéder directement en écriture au nombre de points de vie, car ça n'a aucun sens ! Tu veux qu'il reste accessible en lecture. En revanche tu veux savoir si le personnage est vivant (donc combien de points il lui reste), et également tu ne souhaites pas que ce soit directement modifiable, car ça n'a aucun sens. Enfin, ces variables vont être influencées par l'interaction qui, elle, est rendue accessible :
Tu as donc encapsulé certaines valeurs et certains procédés, et tu ne rends accessible à l'utilisateur qu'une partie des informations. Vois ça comme une interface homme-machine, l'homme n'a pas besoin de tous les engrenages mais seulement de quelques boutons basiques pour déclencher des actions parfois très complexes (comme ce que je fais en ce moment, je tape sur un clavier, je n'ai pas besoin de connaître le détail de l'algorithme derrière le fait d'appuyer sur "espace").
Petite aide pour "simplifier" ton code (ça fait exactement la même chose, mais en 3 fois moins de lignes) :
public class Joueur
{ // En utilisant les propriétés, tu simplifies drôlement tes accès aux champs qui sont même "cachés" dans ce cas précis
public int VieHeros { get; private set; }
public bool HerosAlive { get => VieHeros > 0; }
public Joueur()
{
VieHeros = 150;
}
static void Attaque(object pMonstre)
{
}
}
D'ailleurs je suis sceptique quant à la nécessité d'avoir une méthode statique pour lancer une attaque, et que celle-ci prenne en argument ou object (c'est-à-dire n'importe quoi, même pourquoi pas un boolean, ce qui n'a aucun sens).
En effet, j'ai enlevé "static" et mis "public" afin de pouvoir y accéder en dehors sans pour autant y avoir accès n'importe comment (avec le "static" si j'ai bien compris) !
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.