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 :

Pourquoi utilise-t-on new quand on créé une classe anonyme implémentant une interface ?


Sujet :

avec Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 9
    Points : 9
    Points
    9
    Par défaut Pourquoi utilise-t-on new quand on créé une classe anonyme implémentant une interface ?
    Bonjour,


    Je suis débutant en Java, et j'apprend en parallèle Java avec le dev Android... Cela dit, je pose ici parce que ma question porte plutôt sur le langage.

    Ayant effectué une petite recherche sur le forum et n'ayant pas trouvé exactement ce que je cherchais, je me lance dans une nouvelle discussion. Tout est dans le titre; quand on souhaite implanter un Listener, on passe généralement par une classe anonyme si j'ai bien compris, ça permet d'écrire à chaque fois le code à exécuter pour chaque action. Bon, j'ai trouvé une discussion où on nous confirme que le mot clé "new" dans la classe anonyme sert à instancier l'objet défini par le type de classe suivant ce mot clé. Ce que je comprend pas c'est que quand on fait bouton.setOnClickListener(new view.OnClickListener(){...});, view.OnClickListener() est une interface.. or depuis quand est-ce qu'on instancie des interfaces ?

    Est-ce que par hasard on instancierait une View qui elle, implémente l'interface OnClickListener() ? Comme si cette syntaxe remplaçait : new View() implements OnClickListener ?

    Est-ce que ma question a du sens ? Je ne sais pas si c'est moi qui ait loupé un truc ou si j'ai raison de me poser la question...

    Merci d'avance pour vos réponses

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Tu n'instancies pas l'interface, tu instancies la classe anonyme que tu décris tout de suite après.

    C'est comme si tu faisais class PasBesoinDUnNomCEstAnonyme implements View.OnClickListener { /*corps de la classe */ } et new PasBesoinDUnNomCEstAnonyme() en même temps.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. [3.x] Quand et pourquoi utiliser une factory
    Par samche2000 dans le forum Symfony
    Réponses: 2
    Dernier message: 18/01/2018, 12h08
  2. Réponses: 0
    Dernier message: 15/04/2015, 19h00
  3. Réponses: 0
    Dernier message: 10/06/2013, 12h50
  4. Réponses: 2
    Dernier message: 03/09/2008, 09h39
  5. Réponses: 8
    Dernier message: 11/01/2008, 05h51

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