A propos des inner class, et des inner class statiques - Java - Programmation
Marsh Posté le 21-08-2002 à 12:13:10
bobuse a écrit a écrit : Voilà :
|
Ta classe B n'est visible que dans le code de ta classe A....
si t'as une methode A() dans A tu pourras y acceder en faisant new B().B() tout simplement...
Marsh Posté le 21-08-2002 à 12:14:14
Tu peux plus. Il faut mettre protected pour monObjet et changer le nom de monObjet dans la classe B, pour quelque chose style : monDeuxièmeObjet.
Marsh Posté le 21-08-2002 à 12:15:26
De toutes façon ce code est un peu moisi....
Que cherches tu a faire?
Marsh Posté le 21-08-2002 à 12:15:59
therier a écrit a écrit : Ta classe B n'est visible que dans le code de ta classe A.... si t'as une methode A() dans A tu pourras y acceder en faisant new B().B() tout simplement... |
Marsh Posté le 21-08-2002 à 12:16:26
Cherrytree a écrit a écrit : Tu peux plus. Il faut mettre protected pour monObjet et changer le nom de monObjet dans la classe B, pour quelque chose style : monDeuxièmeObjet. |
Ha bon ! ci pourri
Marsh Posté le 21-08-2002 à 12:18:13
protected est justement là pour que la classe fille et ses suivantes ou ses soeurs, puissent travailler sur monObjet.
Marsh Posté le 21-08-2002 à 12:19:09
une inner class qui est publique c'est n'importe quoi
Marsh Posté le 21-08-2002 à 12:20:01
DarkLord a écrit a écrit : une inner class qui est publique c'est n'importe quoi |
le pur darklord style is back !
Marsh Posté le 21-08-2002 à 12:20:15
Oups, j'avais pas vu que c'était une inner class : je raconte n'importe quoi depuis tout à l'heure.
Marsh Posté le 21-08-2002 à 12:20:58
ReplyMarsh Posté le 21-08-2002 à 12:21:35
DarkLord a écrit a écrit : une inner class qui est publique c'est n'importe quoi |
Ben non, c public pour la classe qui englobe le tout!
Bon, ok je sors!
Le seul interet de faire une inner classe, c'est de creer des objet qui ne seront maniés que par les instances de ta classe englobante. En l'occurrence mettre public c rigolo mais ça change pas grand chose à la semoule!
Marsh Posté le 21-08-2002 à 12:22:42
therier a écrit a écrit : Ben non, c public pour la classe qui englobe le tout! Bon, ok je sors! Le seul interet de faire une inner classe, c'est de creer des objet qui ne seront maniés que par les instances de ta classe englobante. En l'occurrence mettre public c rigolo mais ça change pas grand chose à la semoule! |
surtout que si tu regardes tes .class générés il y a deux fichier séparés ...
Marsh Posté le 21-08-2002 à 12:26:42
DarkLord a écrit a écrit : surtout que si tu regardes tes .class générés il y a deux fichier séparés ... |
oui, c juste au niveau programmation que ca change qqchose...
Marsh Posté le 21-08-2002 à 12:29:28
Moi si je fais des inner class, c'est juste pour limiter le nombre de fichier (43 pour l'instant, pour 80 classes) !
public, c'est pour pouvoir y accéder depuis une autre classe quand même !
Je fais vraiment n'importe quoi ?
Marsh Posté le 21-08-2002 à 12:30:02
si ta raison est d'avoir moins de fichier OUI OUI et OUUIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
Marsh Posté le 21-08-2002 à 12:31:24
bobuse a écrit a écrit : Moi si je fais des inner class, c'est juste pour limiter le nombre de fichier (43 pour l'instant, pour 80 classes) ! public, c'est pour pouvoir y accéder depuis une autre classe quand même ! Je fais vraiment n'importe quoi ? |
heu...oui!
Marsh Posté le 21-08-2002 à 12:39:16
ok les packages et tout et tout, je m'en sers.
Mais bon ... ok ok ... je suis pas encore au top de l'organisation.
C'est-à-dire que je me suis un peu laissé dépasser par la taille de mon projet, vu qu'en plus j'ai découvert Java en même temps, j'ai chopé (essayer) les bonnes habitudes à la volée ...
Enfin bon, les inner class comme celle-là, je les ai pas bocoup utilisées, en fait surtout pour définir des Listener ou des petites boîtes de dialogue à la con (confirmation ...) .
Bon, faudra que je repense tout ça ... plus tard !
Merci en tout cas !
Marsh Posté le 21-08-2002 à 12:45:17
En rédigeant ce topic, je me disais bien que c'était un peu crad aussi
C'est en sciant que Léonard de Vinci
Marsh Posté le 21-08-2002 à 14:19:36
bobuse a écrit a écrit : Voilà :
|
j'ai pas le courage de tout lire, mais la répons eest ca :
Code :
|
Marsh Posté le 21-08-2002 à 14:21:24
DarkLord a écrit a écrit : une inner class qui est publique c'est n'importe quoi |
bha nonm !
regarde java.util.Map.Entry !
Marsh Posté le 21-08-2002 à 14:55:30
benou a écrit a écrit : bha nonm ! regarde java.util.Map.Entry ! |
oui, mais là elle est static!
Ca veut dire que tu pourras créer cet objet via une classe et non via une INSTANCE de classe.
Marsh Posté le 21-08-2002 à 14:56:32
therier a écrit a écrit : oui, mais là elle est static! Ca veut dire que tu pourras créer cet objet via une classe et non via une INSTANCE de classe. |
* 100000
benou >>>
Marsh Posté le 21-08-2002 à 15:02:21
benou a écrit a écrit : j'ai pas le courage de tout lire, mais la répons eest ca :
|
Je garde dans l'idée que cette techmique n'est pas la plus propre. Mais tu as satisfait ma curiosité ! Je me disais bien aussi, que ça devait être possible ! Merci.
Marsh Posté le 21-08-2002 à 15:05:30
bobuse a écrit a écrit : Je garde dans l'idée que cette techmique n'est pas la plus propre. Mais tu as satisfait ma curiosité ! Je me disais bien aussi, que ça devait être possible ! Merci. |
Depuis tout à l'heure j'avais compris le contraire!!!
Marsh Posté le 21-08-2002 à 15:12:03
therier a écrit a écrit : Depuis tout à l'heure j'avais compris le contraire!!! |
c'est bien ce qu'il m'avait semblé
Marsh Posté le 21-08-2002 à 15:20:27
therier a écrit a écrit : Ca veut dire que tu pourras créer cet objet via une classe et non via une INSTANCE de classe. |
je connais pas les classes static ... tu explique ?
Marsh Posté le 21-08-2002 à 15:30:23
benou a écrit a écrit : je connais pas les classes static ... tu explique ? |
Marsh Posté le 21-08-2002 à 16:45:53
benou a écrit a écrit : je connais pas les classes static ... tu explique ? |
static sur la classe signifie que la classe peut être utilisé sans instanciation.
c'est plus facile a voir pour une methode:
Code :
|
dans un main, tu peux faire:
Code :
|
ça donne:
1
2
1
1
par exemple...
Marsh Posté le 21-08-2002 à 16:59:09
bha oui merci, je sais ce que c'est qu'une méthode static
je te demandais ce que c'étais qu'une CLASSE static. Je vois pas en quoi ca peut être la même chose que pour une methode methode.
et comment une classe peut être utilisée sans instanciation ? (à part ses méthodes static).
et puis les objets Map.Entry, on les utilises comme des instances ...
je omprend pas !
Marsh Posté le 21-08-2002 à 17:01:33
ceci dit une classe statique ca n'existe pas ... par contre une inner class peut etre statique mais c'est différent.
A+
Marsh Posté le 21-08-2002 à 17:08:50
DarkLord a écrit a écrit : ceci dit une classe statique ca n'existe pas ... par contre une inner class peut etre statique mais c'est différent. A+ |
Marsh Posté le 21-08-2002 à 17:08:55
Ha ok ! une inner class static ! Ca marche.
C'est que je connaissais pas Map.Entry, par contre je connais Point2D.Float et du coup là, je comprends ! ok !
Marsh Posté le 21-08-2002 à 17:09:52
benou a écrit a écrit : et puis les objets Map.Entry, on les utilises comme des instances ... je omprend pas ! |
Tu fais un new dessus?
donc: pas d'instance!
Marsh Posté le 21-08-2002 à 11:54:06
Voilà :
Comment accéder depuis B() à l'attribut de la classe A ?
Message édité par bobuse le 21-08-2002 à 18:24:42