Bonjour à tous,
Je réalise un petit jeu, j'ai donc plusieurs classes qui contiennent des méthodes
Mais lorsque je les appelle sur des objets dans une fonction main, mes méthodes ne modifient pas directement mes objets....
Le problème vient sûrement du fait que dans mes méthodes, les variables utilisées sont détruites à la fin(variables locales), donc comment faire un passage "par référence" ?
Que dois je changer dans mes méthodes ?
Exemple :Et donc lorsque je fais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 import java.util.Scanner; public abstract class Héros extends Entité { protected double intelligence; protected double épée; protected double beauté; void gifler(Monstre m) { double impactDuCoup = this.musculation + this.intelligence -0.5 * this.lacheté ; double santéAdversaire = m.santé - impactDuCoup; double enduranceAttaquant = this.endurance - (impactDuCoup/4); }Je ne vois pas pourquoi mon objet Ogre n'est pas modifé par l'appel de la fonction gifler...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public class Test { public static void main(String[] args) { Chevalier hulk = new Chevalier(); Ogre shrek = new Ogre(); hulk.gifler(shrek);
En toute honnêté, je vois que ma fonction gifler() ne fait rien de concret, mais comment la modifier pour faire en sorte qu'elle modifie l objet reçu en argument ?
Merci beaucoup d'avance.
Partager