DEBUTANTE JAVA ET G UN PB AIDEZ MOI SVP
Résolu
rimounatn
Messages postés
93
Date d'inscription
Statut
Membre
Dernière intervention
-
kij_82 Messages postés 4089 Date d'inscription Statut Contributeur Dernière intervention -
kij_82 Messages postés 4089 Date d'inscription Statut Contributeur Dernière intervention -
salut,
En faite, j'ai une classe mere dont le nom est "Employe", cette classe a 2 classe filles "Enseignant" et "AgentAdministratif".
le travail demandé c'est de faire une methode rechercher qui recoit en parametre un Employe et qui verifie si cet employé existe ou nn
s'il existe elle le retourne sinon elle retoune null
cette methode est inclu ds la classe "Institut" , cette classe contient un tableau d'employés.
mon probleme que je n'arrive pas à comprendre comment je vé retourner l'employé quand il existe.
voici l'enoncé de l'exercice :
chercherEmploye : retourne l'employé s'il existe, null sinon. Pour utiliser cette
fonctionnalité, il faudra fournir soit le numéro de matricule de l'employé recherché, soit son
nom et son prénom.
et voila mon bout de code :( :
void ajouterEmploye(Employe e)
{
Employe emp= new Employe();
emp=null;
int i=0;
while ((i<this.Employes.length)&&(this.Employes[i].numeroDeMatricule!=e.numeroDeMatricule)||((this.Employes[i].getNomEmploye()==e.getNomEmploye())&&(this.Employes[i].getPrenomEmploye()==e.getPrenomEmploye())))
{
i++;
}
if (i<this.Employes.length)
{
// je met quoi iciii SVP
}
return emp;
}
Merci d'anvance ;)
En faite, j'ai une classe mere dont le nom est "Employe", cette classe a 2 classe filles "Enseignant" et "AgentAdministratif".
le travail demandé c'est de faire une methode rechercher qui recoit en parametre un Employe et qui verifie si cet employé existe ou nn
s'il existe elle le retourne sinon elle retoune null
cette methode est inclu ds la classe "Institut" , cette classe contient un tableau d'employés.
mon probleme que je n'arrive pas à comprendre comment je vé retourner l'employé quand il existe.
voici l'enoncé de l'exercice :
chercherEmploye : retourne l'employé s'il existe, null sinon. Pour utiliser cette
fonctionnalité, il faudra fournir soit le numéro de matricule de l'employé recherché, soit son
nom et son prénom.
et voila mon bout de code :( :
void ajouterEmploye(Employe e)
{
Employe emp= new Employe();
emp=null;
int i=0;
while ((i<this.Employes.length)&&(this.Employes[i].numeroDeMatricule!=e.numeroDeMatricule)||((this.Employes[i].getNomEmploye()==e.getNomEmploye())&&(this.Employes[i].getPrenomEmploye()==e.getPrenomEmploye())))
{
i++;
}
if (i<this.Employes.length)
{
// je met quoi iciii SVP
}
return emp;
}
Merci d'anvance ;)
A voir également:
- DEBUTANTE JAVA ET G UN PB AIDEZ MOI SVP
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
2 réponses
Bonjour,
Cela me semble assez évident comme réponse non ?
Tu demande qu'est ce qu'il faut retourner alors que tu précise bien toi même que ta méthode doit retourné l'objet Employé en question s'il est trouvé.
C'est donc qu'il te faut retourné l'objet Employé à la position i si tu l'a trouvé.
Par contre, au niveau des initialisations en début de méthode, il y a des choses inutiles. (pourquoi faire une variable de type Employé si tu n'y stock pas / lie pas un objet, autant supprimer cette partie donc)
Qui plus est, tes tests dans la boucle while sont faux.
Si je les traduis, actuellement ils donnent ceci :
"Tant que : i inférieur à la taille du tableaux des employés
Et que : le numéro de matricule de l'employé à l'index 'i' est différent de celui recherché
Ou que : le nom et le prénom de l'employé à l'index 'i' sont les mêmes que celui recherché
Alors j'incrémente le compteur 'i'"
La partie en gras n'est pas bonne, c'est le contraire que tu souhaites : tant que les critères de recherche ne sont pas validé, je continue ma boucle et mon incrémentation.
Enfin, si tu lis bien, l'ordre des && et || dans tes conditions ne sont pas correct. Du moins il manque des parenthèses à certains endroits, ce qui fait que l'ordre de priorité de tes conditions n'est pas celui escompté (&& aura toujours la priorité sur || si tu n'y mets pas des parenthèses pour forcer des conditions à s'associer)
Pour finir, parfois tu utilise ce qu'on appelle des 'getters' pour récupérer la valeur de certaines propriété d'un objet 'Employé', parfois non.
Le mieux, pour plus de clareté, dans toute classe java, il faut mettre les propriétés en 'private' et mettre en place des accesseurs (getters et setters, getters te permettant de récupérer, setters permettant de mettre à jour la propriété) Ainsi, dans ton code, plutôt que de faire "e.numeroMatricule", créé un getter pour le numéro de matricule de ta classe Employé (si pas déjà fait), et utilise le : "e.getNumeroMatricule()", comme tu as fais pour "e.getPrenomEmploye()" par exemple.
Il faut toujours être homogène dans ce que l'on fait pour que notre code soit plus claire pour les autres.
Voici donc un code un peu plus propre et qui (sauf erreur de ma part) devrait être bon (non vérifié):
~ N'oubliez pas la balise "Résolu" lorsque votre problème est... résolu :) ~
Cela me semble assez évident comme réponse non ?
Tu demande qu'est ce qu'il faut retourner alors que tu précise bien toi même que ta méthode doit retourné l'objet Employé en question s'il est trouvé.
C'est donc qu'il te faut retourné l'objet Employé à la position i si tu l'a trouvé.
Par contre, au niveau des initialisations en début de méthode, il y a des choses inutiles. (pourquoi faire une variable de type Employé si tu n'y stock pas / lie pas un objet, autant supprimer cette partie donc)
Qui plus est, tes tests dans la boucle while sont faux.
Si je les traduis, actuellement ils donnent ceci :
"Tant que : i inférieur à la taille du tableaux des employés
Et que : le numéro de matricule de l'employé à l'index 'i' est différent de celui recherché
Ou que : le nom et le prénom de l'employé à l'index 'i' sont les mêmes que celui recherché
Alors j'incrémente le compteur 'i'"
La partie en gras n'est pas bonne, c'est le contraire que tu souhaites : tant que les critères de recherche ne sont pas validé, je continue ma boucle et mon incrémentation.
Enfin, si tu lis bien, l'ordre des && et || dans tes conditions ne sont pas correct. Du moins il manque des parenthèses à certains endroits, ce qui fait que l'ordre de priorité de tes conditions n'est pas celui escompté (&& aura toujours la priorité sur || si tu n'y mets pas des parenthèses pour forcer des conditions à s'associer)
Pour finir, parfois tu utilise ce qu'on appelle des 'getters' pour récupérer la valeur de certaines propriété d'un objet 'Employé', parfois non.
Le mieux, pour plus de clareté, dans toute classe java, il faut mettre les propriétés en 'private' et mettre en place des accesseurs (getters et setters, getters te permettant de récupérer, setters permettant de mettre à jour la propriété) Ainsi, dans ton code, plutôt que de faire "e.numeroMatricule", créé un getter pour le numéro de matricule de ta classe Employé (si pas déjà fait), et utilise le : "e.getNumeroMatricule()", comme tu as fais pour "e.getPrenomEmploye()" par exemple.
Il faut toujours être homogène dans ce que l'on fait pour que notre code soit plus claire pour les autres.
Voici donc un code un peu plus propre et qui (sauf erreur de ma part) devrait être bon (non vérifié):
void rechercherEmploye(Employe e) { int i=0; while ( i<this.Employes.length && ( this.Employes[i].numeroDeMatricule != e.numeroDeMatricule || (this.Employes[i].getNomEmploye() != e.getNomEmploye() && this.Employes[i].getPrenomEmploye() != e.getPrenomEmploye())) ) { i++; } if (i<this.Employes.length) { return this.Employes[i]; } return null; }
~ N'oubliez pas la balise "Résolu" lorsque votre problème est... résolu :) ~
Ok, j'ai passé ta discussion au statu "résolu", il faut penser à le faire soi-même la prochaine fois.
Peux-tu également plussoyer ma réponse de manière à ce qu'elle apparaissent en premier puisqu'elle répond à ton problème. (je ne peux le faire moi-même)
Merci.