Peut-on svp créer une classe interne dans une classe (thread) implémentant l'interface runnable ?
Si non pourquoi exactement svp ?
Peut-on svp créer une classe interne dans une classe (thread) implémentant l'interface runnable ?
Si non pourquoi exactement svp ?
Salut,
on peut déclarer une classe interne dans n'importe quelle classe que tu définis (Même dans une enum).
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
Merci, mais je reformule ma question autrement svp : peut-on créer une classe interne avec méthode interne (très important) dans une classe implémentant l'interface Runnable (Thread) ?
Développementement.
Salut,
Je ne sais pas ce que tu appelles méthode interne ? Une méthode est une méthode. Une classe peut avoir une ou plusieurs méthodes. Quelque soit la classe.
Sinon, c'est la même question, donc la même réponse : on peut créer une classe interne dans n'importe quelle classe. Qu'elle implémente Runnable, une autre interface, ou aucune, ne change rien : une classe est une classe.
Exemple de principe :
Et résultat d'éxécution :
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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 // une classe concrète implémentant l'interface java.lang.Runnable public class UneClasse implements Runnable { // une classe interne implémentant l'interface java.lang.Runnable private class ClasseInterne implements Runnable { public void run() { uneMethode(); // appelle d'une méthode de ClasseInterne } private void uneMethode() { System.out.println("Execution méthode de classe interne"); } } public void run() { uneMethode(); } private void uneMethode() { System.out.println("Execution méthode de classe UneClasse"); // une classe locale à la méthode, implémentant l'interface java.lang.Runnable class ClasseLocale implements Runnable { public void run() { uneMethode(); // appelle d'une méthode de la classe locale } public void uneMethode() { System.out.println("Execution méthode de classe locale"); } } final ClasseLocale runnable1=new ClasseLocale(); final ClasseInterne runnable2=new ClasseInterne(); //instanciation d'une instance de classe anonyme implémentant l'interface java.lang.Runnable Runnable runnable=new Runnable() { public void run() { uneMethode(); } public void uneMethode() { System.out.println("Execution méthode de classe anonyme"); runnable1.run(); // appel de la méthode run de la classe locale runnable2.run(); // appel de la méthode run de la classe interne } }; runnable.run(); // appel de la méthode run de la classe anonyme } public static void main(String[] args) { new UneClasse().run(); // appel de la méthode run de UneClasse } }
PS: Attention, l'interface Runnable ne permet pas de créer un thread (c'est la classe Thread qu'il faut utiliser pour faire un thread, et cette classe peut déléguer à un Runnable le code qu'elle doit exécuter dans le thread).Execution méthode de classe UneClasse Execution méthode de classe anonyme Execution méthode de classe locale Execution méthode de classe interne
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager