IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

[Débutant] Surcharge d'une méthode


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 77
    Par défaut [Débutant] Surcharge d'une méthode
    Bonjour à tous,

    je débute dans le Java, j'ai un exercice tout simple.
    J'ai une classe Point, je fais un ArrayList de Point.
    J'appele la méthode indexof, je sais que cette méthode fait appel à equals, mais je voudrais qu'elle compare le contenu des points et non les référence, j'ai donc surchargé equals(), dans ma classe Point :

    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
    public class Point {
     
    	private int x;
    	private int y;
     
    ...
     
    	public boolean isSameAs(Point p){
    		return ((this.x==p.x)&&(this.y==p.y));
    	}
     
    	@Override
    	public boolean equals(Object p){
    		System.out.println("Compare bien le contenu maintenant !");
    		return this.isSameAs((Point)p);
    	}
    L'appel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
                    Point p=new Point(1,2);
    		Point p2=p;
    		Point p3=new Point(1,2);
    		ArrayList<Point> list = new ArrayList<Point>();
     
    		list.add(p);
    		list.add(p2);
    		list.add(p3);
    		System.out.println("Position de p2 dans list : "+list.indexOf(p2));
    		System.out.println("Position de p3 dans list : "+list.indexOf(p3));
    		System.out.println("Object.equals() est appelé par indexOf()");
    Or je n'obtient pas la bonne position de mes objets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Compare bien le contenu maintenant !
    Position de p2 dans list : 0
    Compare bien le contenu maintenant !
    Position de p3 dans list : 0
    Object.equals() est appelé par indexOf()
    Il me manque quelque chose apparement mais quoi ?

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Quand il n'y a pas de solution, c'est qu'il n'y a pas de probleme

    Ton programme fonctionne parfaitement. Tous tes points sont "egaux" selon ta definition: p equals p2 equals p3

    Indexof te retourne l'indice du premier point qu'il trouve comme etant égal a ton parametre. Donc l'indice 0 fait l'affaire.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 77
    Par défaut
    Ah en effet !!

    Merci bien


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. surcharge d'une méthode
    Par Chris33 dans le forum wxPython
    Réponses: 2
    Dernier message: 11/04/2008, 10h05
  2. Surcharge d'une méthode
    Par Pilloutou dans le forum C#
    Réponses: 8
    Dernier message: 10/10/2007, 14h53
  3. Réponses: 2
    Dernier message: 10/05/2007, 17h29
  4. [Débutant]Appel d'une méthode
    Par LhIaScZkTer dans le forum Langage
    Réponses: 9
    Dernier message: 27/12/2006, 15h55
  5. [MFC] Surcharge d'une méthode CListCtrl
    Par semenzato dans le forum MFC
    Réponses: 8
    Dernier message: 22/12/2005, 22h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo