Problème de tPers[i].getClass().getName()
Résolu
estrellas6
Messages postés
36
Date d'inscription
Statut
Membre
Dernière intervention
-
estrellas6 Messages postés 36 Date d'inscription Statut Membre Dernière intervention -
estrellas6 Messages postés 36 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voila, dans le tutoriel de site du zéro sur java et dans la partie "Pattern Strategy" voici ce code :
package com.sdz.test;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
Personnage[] tPers = {new Guerrier(), new Chirurgien(), new Civil(), new Sniper(), new Medecin()};
String[] tArmes = {"pistolet", "pistolet", "couteau", "fusil à pompe", "couteau"};
for(int i = 0; i < tPers.length; i++){
System.out.println("\nInstance de " + tPers[i].getClass().getName());
System.out.println("*****************************************");
tPers[i].combattre();
tPers[i].setArmes(tArmes[i]);
tPers[i].combattre();
tPers[i].seDeplacer();
tPers[i].soigner();
}
}
1- le "tPers[i].getClass().getName()" ne fonctionne pas bien parce que normalement il me donne "Instance de Guerrier" [par exemple] mais dans mon cas il m'affiche "Instance de com.sdz.test.Guerrier"[comme si j'ai pas le getName()], d'après vous c'est quoi ce problème???
2- dans ce code j'ai pas compris pour quoi il a appelé la méthode combattre() deux fois
tPers[i].combattre();
tPers[i].setArmes(tArmes[i]);
tPers[i].combattre();
une fois avant "tPers[i].setArmes(tArmes[i]);" et une autre fois après ???????
Merci à vous
Voila, dans le tutoriel de site du zéro sur java et dans la partie "Pattern Strategy" voici ce code :
package com.sdz.test;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
Personnage[] tPers = {new Guerrier(), new Chirurgien(), new Civil(), new Sniper(), new Medecin()};
String[] tArmes = {"pistolet", "pistolet", "couteau", "fusil à pompe", "couteau"};
for(int i = 0; i < tPers.length; i++){
System.out.println("\nInstance de " + tPers[i].getClass().getName());
System.out.println("*****************************************");
tPers[i].combattre();
tPers[i].setArmes(tArmes[i]);
tPers[i].combattre();
tPers[i].seDeplacer();
tPers[i].soigner();
}
}
1- le "tPers[i].getClass().getName()" ne fonctionne pas bien parce que normalement il me donne "Instance de Guerrier" [par exemple] mais dans mon cas il m'affiche "Instance de com.sdz.test.Guerrier"[comme si j'ai pas le getName()], d'après vous c'est quoi ce problème???
2- dans ce code j'ai pas compris pour quoi il a appelé la méthode combattre() deux fois
tPers[i].combattre();
tPers[i].setArmes(tArmes[i]);
tPers[i].combattre();
une fois avant "tPers[i].setArmes(tArmes[i]);" et une autre fois après ???????
Merci à vous
A voir également:
- Getclass.online
- I showkeyplus - Télécharger - Utilitaires
- Bouton on off o i - Forum Word
- I love pdf avis ✓ - Forum PDF
- O ou i pour allumer - Forum Facebook
- I sans point - Forum Windows
2 réponses
1) remplace getName (com.sdz.test.Guerrier) par getSimpleName (Guerrier)
2) ce n'est qu'un exemple, ici en modifiant l'arme avec ton setArme, la méthode combattre ne va pas faire la même chose.
2) ce n'est qu'un exemple, ici en modifiant l'arme avec ton setArme, la méthode combattre ne va pas faire la même chose.
Merci KX,
1-Pour getSimpleName() ça a bien fonctionné pourtant dans le tutoriel il a met juste getName().
2-oui je sais mais je parle du programme, qu'elle est l'utilité d'appeler la mm méthode deux fois sachant qui si on enlève l'une des deux on aura le même résultat dans les deux cas.
si on applique juste combattre () on aura "Attaque au couteau"
et quand on applique setArme() on aura "Attaque au pistolet"
mon problème c que je ne vois pas pour quoi dans ce programme a utilisé combattre () deux fois ?
1-Pour getSimpleName() ça a bien fonctionné pourtant dans le tutoriel il a met juste getName().
2-oui je sais mais je parle du programme, qu'elle est l'utilité d'appeler la mm méthode deux fois sachant qui si on enlève l'une des deux on aura le même résultat dans les deux cas.
si on applique juste combattre () on aura "Attaque au couteau"
et quand on applique setArme() on aura "Attaque au pistolet"
mon problème c que je ne vois pas pour quoi dans ce programme a utilisé combattre () deux fois ?