Méthode EQAULS

hafidaagourram Messages postés 6 Date d'inscription samedi 15 août 2009 Statut Membre Dernière intervention 12 mai 2010 - 26 août 2009 à 16:49
ouabida10 Messages postés 57 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 9 janvier 2011 - 27 août 2009 à 20:42
Bonjour,
une question concernant la méthode EQAULS:
j'ai crée une classe Stagiaire et dans cette classe je doit ajouter une méthode equals qui teste l'égalité de deux objets Stagiaire (2 objets Stagiaire sont égaux s'ils ont le même matricule).j'ai pas compris comment la faire.
j'ai besoin de votre aide.
MERCI D'AVANCE.


hafida

12 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
26 août 2009 à 17:40
Salut,

C'est quoi ton problème au juste ? Il te suffit de surcharger la méthode equals :
class Stagiaire {
  protected String matricule;

  public String getMatricule() {
    return matricule;
  }

  public boolean equals(Stagiaire stagiaire) {
    if (stagiaire != null) {
      if (stagiaire.getMatricule() != null) {
        return stagiaire.getMatricule().equals(matricule);
      } else {
        if (matricule != null) {
          return false;
        }
      }
    }
    return false;
  }
}


______________________________________
DarK Sidious
0
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
26 août 2009 à 17:46
Bonjour.
IL faut faire quel-chose comme ça :
public class Stagiaire {
    String matricule;
    public String getMatricule() {
        return matricule;
    }
...

    public boolean equals(Stagiaire another) {
        return this.getMatricule().equals(another.getMatricule());
    }
...
0
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
26 août 2009 à 17:47
Désolé DARKSIDIOUS, je n'avais pas vu ton post.
0
hafidaagourram Messages postés 6 Date d'inscription samedi 15 août 2009 Statut Membre Dernière intervention 12 mai 2010
26 août 2009 à 17:48
Merci pour votre aide.

Mon problème: c'est ajouter la méthode eqauls qui teste l'égalité de deux objets stagiaire.


MERCI D"AVANCE.

hafida
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
hafidaagourram Messages postés 6 Date d'inscription samedi 15 août 2009 Statut Membre Dernière intervention 12 mai 2010
26 août 2009 à 17:56
MERCI BEAUCOUP pour vos réponse je vais essayer.
la classe Stagiaire :
public class Stagiaire {
//les atributs
private int matricule;
private String nom;
private String prenom;
private String filiere;
private double note1;
private double note2;
private double note3;
public static int compteur;

//les accesseurs

public int getMatricule() {
return matricule;
}
public void setMatricule(int matricule) {
this.matricule = matricule;
}
public String getNom() {
return nom;
}
public void setNom(String nom) {
this.nom = nom;
}
public String getPrenom() {
return prenom;
}
public void setPrenom(String prenom) {
this.prenom = prenom;
}
public String getFiliere() {
return filiere;
}
public void setFiliere(String filiere) {
this.filiere = filiere;
}
public double getNote1() {
return note1;
}
public void setNote1(double note1) {
this.note1 = note1;
}
public double getNote2() {
return note2;
}
public void setNote2(double note2) {
this.note2 = note2;
}
public double getNote3() {
return note3;
}
public void setNote3(double note3) {
this.note3 = note3;
}

//compteur permetant de compter le nombre d'objets
Stagiaire(){
compteur++;
}

//constructeur qui initialise le matricule
Stagiaire(int matricule){
this.matricule=compteur;
}

//constructeur avec 3 arguments
Stagiaire(String nom,String prenom,String filiere){
this.nom=nom;
this.prenom=prenom;
this.filiere=filiere;
}

//constructeur avec tous les arguments
Stagiaire(int matricule,String nom,String prenom,String filiere,double note1,double note2,double note3){
this.matricule=matricule;
this.nom=nom;
this.prenom=prenom;
this.filiere=filiere;
this.note1=note1;
this.note2=note2;
this.note3=note3;
}

//methide qui initialise le compteur
public static void RAZ(int compteur){
compteur=0;

}

//methode qui calcule la moyenne
public static double Calcul(double note1,double note2,double note3){
double moy=(note1+note2+note3)/3;
return moy;
}
//exception
Stagiaire(double note1){
Errornote E=new Errornote("erreur");
if(note1<0 || note1>20){
throw E;
}
}


}



hafida
0
ouabida10 Messages postés 57 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 9 janvier 2011 1
26 août 2009 à 18:02
salut....a base de vous objet "stagiaire" te peut consédiré la méthode suivant :


public class stage {
 private  String  Matricule;
private String Nom;
private String Prénom;


static int a=1;


    public stage(String Nom, String Prénom, String Matricule) {
        this.Nom = Nom;
        this.Prénom = Prénom;
        this.Matricule = Matricule;
    }

    public void EQUALS(stage k){

       if((k.Matricule).equals(this.Matricule)) {
           System.out.println("les deux objet son égaux...");
       }else{
            System.out.println("les deux objet ne son pas égaux...");
       }

    }

    public static void main(String[]args){

    stage aa=new stage("oubida", "kkoll", "ab112");
     stage bb=new stage("zizo", "lolo", "ab112");

     aa.EQUALS(bb);

    }
}





bon courage ........te peut me contacté sur ouabida_abdallah@hotmail.com j'ai des exemple pour voous...bon courage
0
kirua12 Messages postés 1155 Date d'inscription samedi 17 janvier 2004 Statut Membre Dernière intervention 29 avril 2011 7
27 août 2009 à 09:38
Pour ouabida10 : quand on propose un exemple de code, il serait bon de respecter les conventions de codages :
- nom de classe commençant par une majuscule
- nom d'attribut et de paramètre commençant par une minuscule
- pas de caractères exotiques dans les noms de variables (bien que normalement pas gênant mais les problèmes de charset sont assez fréquents)
- nom de méthode en minuscule

Et quand on redéfinit la méthode equals(), on se doit de respecter sa signature (type de retour) et son contrat (cas du null ...)
0
ouabida10 Messages postés 57 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 9 janvier 2011 1
27 août 2009 à 17:38
Salut ......je suis entrain d'aidé qu'elle qu'un a mieux comprendre c'est tous et c'est pas la Paine de respecté tous ce que vous avez souligniez
Et pour la méthode EQUALS dans mon exemple c'est une méthode VOID qui ne retourne rien .....Et ça pour simplifier l'utilisation dans la main
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
27 août 2009 à 18:15
Salut,

Euh... ouabida10 : ca sert à quoi de faire une méthode equals qui ne respecte pas le standard java ?

Le fait de redéfinir la fonction equals permet de l'utiliser non seulement pour tester l'égalité soit même, mais également par tout les classes du framework java... donc quitte à la surcharger, autant qu'elle soit utilisable partout (et donc respecter la nomenclature et la signature de la fonction !).
______________________________________
DarK Sidious
0
ouabida10 Messages postés 57 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 9 janvier 2011 1
27 août 2009 à 18:21
salut ....

*l'objectif c'est pas de surcharger la méthode equals ....mais c'est de crée une méthode "EQUALS" qui test l'égalité des deux objet donc sa rien avoir avec la méthode equals de la biblio de java .....on peut nomé cette méthode n'import quelle nom .......tu viox...
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
27 août 2009 à 20:38
Salut,

Je ne vois pas où est-ce que tu as lu que le but n'était pas de surcharger la méthode equals...

Enfin c'est pas grave, merci pour ta participation.
______________________________________
DarK Sidious
0
ouabida10 Messages postés 57 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 9 janvier 2011 1
27 août 2009 à 20:42
j'ai crée une classe Stagiaire et dans cette classe je doit ajouter une méthode equals qui teste l'égalité de deux objets Stagiaire


tu viox "ajouter" et pas surcharger.....
0
Rejoignez-nous