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 :

comment définir l'objet que l'on veut utiliser si ceux-ci ont des methodes communes


Sujet :

Langage Java

  1. #1
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    220
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 220
    Points : 104
    Points
    104
    Par défaut comment définir l'objet que l'on veut utiliser si ceux-ci ont des methodes communes
    Bonjour,

    J'ai commencé à faire un agenda et un repertoire dans une meme application. J'aimerais faire un pnl de recherche commun pour les 2.

    N'y a t'il pas un moyen comme créer des méthodes qui ont le memes noms (et meme nombres d'arguments et type)(mais qui ne font pas le meme traitement) dans ma classe repertoire et agenda. Et d'utilser un moyen pour obtenir le bon objet.
    Voici mon idée, mais est syntaxiquement incorect :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if(frame.getMode()==0) Repertoire common = new Repertoire(frame);
    else Agenda common = new Agenda(frame);
    common.CommonMethode();
    J'espère que vous comprendrez merci.

  2. #2
    Membre expérimenté Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Points : 1 544
    Points
    1 544
    Par défaut
    SAlut,

    je crois que ce que tu cherches a faire s appel l heritage.
    Disons que si 2 classes doivent pourvoir chercher une info dans un truc (oui j ai pas d exemple en tete), la solution (une des en fait) consiste a creer une interfece "IRecherche" par exemple qui declare la methode que tu souhaite.

    En suite chaque des classes qui devra rechercher qulque chose herite (en java implemente) cette interface a sa maniere (defini la methode de l interface j entends).

    Apres pour que ca fonctionne tu l appelle comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    IRecherche agenda = new Agenda();
    IRecherche rep = new Repertoire();
     
    agenda.taMethodeCommune();
    rep.taMethodeCommune();
    et la tu verras selon la classe invoquée par le new la bonne methode est appelée !!!

    Pour plus d infos regarde de plus pres la notions d heritage et de polymorphisme
    "vaste programme"

  3. #3
    Membre confirmé Avatar de Claythest
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    558
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 558
    Points : 554
    Points
    554
    Par défaut
    L'héritage et l'implémentation ne sont pas les mêmes choses...

    Mais en effet, comme dit par BainE, il te faut utiliser les interfaces en java

  4. #4
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    220
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 220
    Points : 104
    Points
    104
    Par défaut
    voila mon interface
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public interface ComponentFilter {
     
    	public void textChanged(String str);
     
    }
    j'ai bien fait l'implement dans repertoire et agenda en redefinissant la méthode textChanged, mais j'ai des problème pour l'appel car je voudrais qu'un seul objet selon le mode dans lequel je suis.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    		Agenda common;
    		if(frame.getMode()==0) common = new Agenda(frame);
    		else common = new repertoire(frame);
    car ceci est syntaxiquement incorrect qqn a une idée.

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Février 2006
    Messages
    238
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 238
    Points : 267
    Points
    267
    Par défaut
    Pour cela tu utilise l'interface que tu viens de créer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ComponentFilter common;
    if (frame.getMode() == 0) {
        common = new Agenda(frame);
    } else {
        common = new repertoire(frame);
    }
    Voilà j'espere avoir répondu a ta question.

  6. #6
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    220
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 220
    Points : 104
    Points
    104
    Par défaut
    ok merci ca marche

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

Discussions similaires

  1. Réponses: 15
    Dernier message: 21/05/2010, 00h36
  2. Réponses: 1
    Dernier message: 31/03/2010, 10h33
  3. Réponses: 1
    Dernier message: 31/03/2010, 01h58
  4. [neural network toolbox] définir la précision que l'on veut obtenir
    Par christophe_halgand dans le forum MATLAB
    Réponses: 0
    Dernier message: 27/04/2009, 13h44
  5. Réponses: 4
    Dernier message: 10/07/2008, 15h35

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