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

avec Java Discussion :

Interface, le but?


Sujet :

avec Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2008
    Messages : 14
    Par défaut Interface, le but?
    Bonjour,

    j'aimerais savoir à quoi sert une interface. Je comprends le principe des méthodes sans corps qui doivent être déclaré dans la classe implémentant l'interface.

    Mais à quoi elle sert réellement?. Quelle est le but? On pourrait déclarer ces méthodes directement dans la classe sans interface.

    Je comprend qu'on peut regrouper ainsi plusieurs classes et qu'on s'assure qu'elles «agissent» (par nom de méthodes identiques) de façon similaire. Mais je n'arrive pas à voir le but de se regroupement.

    Merci de vos réponses!

  2. #2
    Membre Expert
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 050
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 050
    Par défaut
    Salut,

    Oui on peut évidemment définir des méthodes direct dans la classe, mais les interfaces peuvent être réutilisable sur plusieurs objet sans réécrire de code !
    De plus implémenter ton interface t'oblige a implémenté les méthodes de cette interface, tu es sur de ne pas en oublier.

    Les méthodes d'une interface sont vide parce que le comportement de ces méthodes dépendent du contexte, on ne peut donc décrire ce comportement à l'avance. C'est un moyen de dire que tel et tel objets devront avoir tel comportement (méthode) dont les détails de ce comportement sont à définir pour chacun de tes objets.

    C'est très proche des méthodes abstraites a cela près que ces dernières ne peuvent exister que pour des objets d'un type précis (celui qui implémente les méthodes abstraites) alors que l'interface peuvent exister pour n'importe qu'elle objet.

    L'exemple typique d'une interface est le Listener.

    De plus implémenter une interface c'est typé tes objets, tu peut alors vérifier qu'il implémente bien cette interface avec instanceof. C'est parfois utilisé dans le JDK.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2008
    Messages : 14
    Par défaut
    Rebonjour,

    Les méthodes d'une interface sont vide parce que le comportement de ces méthodes dépendent du contexte
    Autrement dit visiwi, le contexte équivaut à la classe qui l'utilise?


    J'ai vu souvent la réponse suivante:

    Elles sont utiles pour des équipes qui travaillent sur un même projet, chacune doit pouvoir connaitre les méthodes qui seront implémentées par les autres et leur spécification pour pouvoir inclure les appels dans leurs propres méthodes.
    Autre réponse? Merci!

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    325
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 325
    Par défaut
    Moi je te présenterais le concept de façon plus terre-à-terre.

    Quand tu as une machine devant toi, il y a la plupart du temps une interface qui te permet de la manipuler.
    Par exemple une voiture. L'interface c'est un volant.

    Toi tu sais que ta voiture tu peux la faire tourner en actionnant le volant. Mais tu n'as pas besoin ni envie de savoir comment se comporte le mécanisme derrière le volant. D'ailleurs on pourrait penser qu'il y a des voitures qui ont une crémaillère pour orienter les roues, et d'autres un système pneumatique. Mais ça, c'est le détail de chaque implémentation des voitures.
    Ce qui est visible et utilisable de l'extérieur c'est le volant. L'interface volant.

    Donc en écrivant une interface Voiture, et en déclarant une méthode actionnerVolant(), tu indiques juste que les objets qui implémenteront des Voitures devront avoir une méthode actionnerVolant(), et dans le corps de cette méthode elles préciseront se qui se passe quand on actionne le volant. Chacune pouvant adopter une façon de faire différente.

    Je ne sais pas si ça t'éclaire.
    Si ce n'est pas le cas, essaye de voir des cours, ce n'est pas ça qui manque sur developpez.

    Bon courage.

  5. #5
    Membre Expert
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 050
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 050
    Par défaut
    Donc en écrivant une interface Voiture, et en déclarant une méthode actionnerVolant(), tu indiques juste que les objets qui implémenteront des Voitures devront avoir une méthode actionnerVolant(), et dans le corps de cette méthode elles préciseront se qui se passe quand on actionne le volant. Chacune pouvant adopter une façon de faire différente.
    C'est une autre façon de formuler mon propos quand je dit :
    Les méthodes d'une interface sont vide parce que le comportement de ces méthodes dépendent du contexte
    Le fait que :
    Elles sont utiles pour des équipes qui travaillent sur un même projet, chacune doit pouvoir connaitre les méthodes qui seront implémentées par les autres et leur spécification pour pouvoir inclure les appels dans leurs propres méthodes.
    ne signifie pas pour autant qu'elles ne le sont pas si ont ne travail pas en équipe. c'est un aspect, mais ceux que j'ai cités ainsi que la reformulation intéressante de sir_gcc, sont vrai même si tu ne travail pas en équipe.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2008
    Messages : 14
    Par défaut
    Merci à vous deux!

    C'est le genre de réponses que je voulais. Comprendre quand utiliser les interfaces et dans quel but... Merci, c'est plus clair!

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

Discussions similaires

  1. Réponses: 15
    Dernier message: 19/03/2015, 15h52
  2. Réponses: 53
    Dernier message: 25/02/2014, 12h56
  3. [VB6] [Interface] Horloge 7 segments
    Par selenay dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 07/10/2002, 16h15
  4. interface utilisateur avec OpenGL
    Par demis20 dans le forum OpenGL
    Réponses: 6
    Dernier message: 03/10/2002, 12h27

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