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 :

L' Interface runnable


Sujet :

avec Java

Vue hybride

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

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Par défaut L' Interface runnable
    Bonjour,

    sachant que l'interface runnable ne contient que la méthode "run", comment ça se fait qu'on peut utiliser la méthode "start" dans un thread qui implémente runnable, sans pour autant hériter de la classe Thread qui elle définit une méthode start.Est ce que runnable hérite de Thread ?

  2. #2
    Membre expérimenté Avatar de Tux++
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    281
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 281

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Par défaut
    Citation Envoyé par Tux++ Voir le message
    Merci pour ce tuto


    ça a l'air bien mais c'est en anglais...Je ne maitrise pas encore vraiment l'anglais(c'est en cours...indispensable pour l'informatique) et je ne maitrise pas du tout java...alors, je ne sais pas ce que ça va donner si je mélange les deux

  4. #4
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Peux-tu expliquer ce que tu n'as pas compris ?

    ... en gros, le start() Thread, le run() Runnable.

    Là c'est juste une question de quels objets correspondent à quelles méthodes.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Par défaut
    Citation Envoyé par gifffftane Voir le message
    Là c'est juste une question de quels objets correspondent à quelles méthodes.

    Oui tout à fait et là je vois qu'on peut appeler la méthode "start" dans un programme dont le thread implémente runnable qui contient l'unique méthode "run"...donc je ne comprends pas....

  6. #6
    Membre expérimenté Avatar de Tux++
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    281
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 281
    Par défaut
    parce que la méthode start() proviens de la classe thread

  7. #7
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Pour lancer un thread il n'y a qu'une façon : activer la méthode start. Cette méthode existe dans la classe Thread. Jusque là, aucun problème.

    Tu ne peux lancer la méthode start que sur un objet de classe Thread, non sur un objet de classe Runnable.

    Que se passe-t-il ensuite ?

    - Soit tu as passé un objet de classe Runnable à la construction du thread, et start active la méthode run de l'objet Runnable : aucun problème.
    - Soit tu n'as passé aucun objet Runnable, et start active la méthode run du thread lui même : aucun problème non plus.


    Est-ce plus clair ?

    (flûte grilled)

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Par défaut
    Citation Envoyé par gifffftane Voir le message
    Est-ce plus clair ?




    Citation Envoyé par gifffftane Voir le message
    - Soit tu as passé un objet de classe Runnable à la construction du thread, et start active la méthode run de l'objet Runnable : aucun problème.
    - Soit tu n'as passé aucun objet Runnable, et start active la méthode run du thread lui même : aucun problème non plus.
    (flûte grilled)


    C'est trop technique pour moi....ça correspond exactement à la réponse à ma question mais je n'ai pas vraiment compris

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Par défaut
    Alors là...quitte à paraître trés rébarbative, je vais oser ma dernière question :

    Comment peut on crére une instance de Thread dans cette classe alors que cette classe n'hérite pas de Thread...



    ça répondra sûrement à mon interrogation initiale je pense

  10. #10
    Membre expérimenté Avatar de Tux++
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    281
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 281
    Par défaut
    Simplement parce que la classe Thread(); est dans l'API standard de java.

    Mais j'ai l'impression que tu n'as pas bien compris le principe des instances. Le fait d'hériter d'une classe et le fait d'instancier cette classe ne sont pas liés

  11. #11
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut
    Quand tu fais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new Thread(compteurs[i]).start();
    tu crées une instance de Thread.

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Par défaut
    Citation Envoyé par herve91 Voir le message
    Quand tu fais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new Thread(compteurs[i]).start();
    tu crées une instance de Thread.
    Oui, je m'en doute...sans vraiment comprendre la manière dont c'est instancié.

  13. #13
    Membre chevronné
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 340
    Par défaut
    Tu n'es jamais obligé d'hériter d'une classe pour pouvoir l'instancier, l'héritage sert principalement à ajouter des fonctionnalités à une classe existante ou à définir un cas particulier d'une classe qui représente un ensemble de choses (exemple si tu crés une classe Véhicule, tu pourras créer une class Voiture qui hérite de celle ci pour en implémenter les fonctionnalité et éventuellement les modifier ou en ajouter parce-qu'une voiture est un cas particulier de véhicule).

    Mais tu n'es pas obligé d'utiliser l'héritage, en plus vu la richesse de l'API standard de Java en général les outils existent.

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Par défaut
    Citation Envoyé par Tux++ Voir le message
    Simplement parce que la classe Thread(); est dans l'API standard de java.

    Mais j'ai l'impression que tu n'as pas bien compris le principe des instances. Le fait d'hériter d'une classe et le fait d'instancier cette classe ne sont pas liés

    Oui en effet,je n'ai pas bien compris : je pensais que pour créer une instance d'une classe (présente dans l'API java), on était obligé d'en hériter mais visiblement, ce n'est pas le cas...Par contre, c'est peut être vrai pour les classes utilisateurs...

Discussions similaires

  1. Réponses: 7
    Dernier message: 14/04/2010, 12h03
  2. Thread : class Thread VS. interface Runnable
    Par shawty dans le forum Concurrence et multi-thread
    Réponses: 6
    Dernier message: 11/03/2007, 21h09
  3. [VB6] [Interface] ComboBox à plusieurs colonnes
    Par mtl dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 30/03/2004, 17h35
  4. [VB6] [Interface] Horloge 7 segments
    Par selenay dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 07/10/2002, 16h15
  5. 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