bonjour a tous,
actuellement je suis sur les lignes de code suivantes qui représentent une classe gérant le comportement d un monstre .
il faut préciser que la méthode LanceLeDe de l objet dé a eté définie dans la classe "De" qu encapsule notre classe monstrefacile.Code:public class MonstreFacile { private const int degats = 10; protected De de; public bool EstVivant { get; private set; } public MonstreFacile() { de = new De(); EstVivant = true; } public virtual void Attaque(Joueur joueur) { int lanceMonstre = LanceLeDe(); int lanceJoueur = joueur.LanceLeDe(); if (lanceMonstre > lanceJoueur) joueur.SubitDegats(degats); } public void SubitDegats() { EstVivant = false; } public int LanceLeDe() { return de.LanceLeDe(); } }
ma question: dans la méthode attaque on peut constater dans la première ligne que la méthode LanceLeDe(de la classe monstrefacile ) a été affecté a la variable int lanceMonstre alors que cette méthode n est pas indiquée statique(même si elle a tout pour l être vu qu elle n utilise pas de variable de sa classe ni dans les params ni dans son corps dailleur),et que par définition il faut passe par un objet de sa classe pour l invoquer non?
a moins qu il soit permis a l'intérieur de la classe d'invoquer une méthode de la classe même sans instanciation d objet ?
en vous remerciant!
pour de plus amples informations sur le code en globalité https://openclassrooms.com/courses/p...-oriente-objet
-----