Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1346 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  A propos des inner class, et des inner class statiques

 


 Mot :   Pseudo :  
 
 Page :   1  2  3  4
Page Précédente
Auteur Sujet :

A propos des inner class, et des inner class statiques

n°198652
bobuse
Posté le 21-08-2002 à 11:54:06  profilanswer
 

Voilà :

Code :
  1. public class A {
  2.    private Object monObject;
  3.    // ... blabla ...
  4.    public class B {
  5.       private Object monObject;
  6.       public B() {
  7.          // ...
  8.       }
  9.    }
  10. }


Comment accéder depuis B() à l'attribut de la classe A ?


Message édité par bobuse le 21-08-2002 à 18:24:42
mood
Publicité
Posté le 21-08-2002 à 11:54:06  profilanswer
 

n°198680
therier
heu...coucou!
Posté le 21-08-2002 à 12:13:10  profilanswer
 

bobuse a écrit a écrit :

Voilà :

Code :
  1. public class A {
  2.    private Object monObject;
  3.    // ... blabla ...
  4.    public class B {
  5.       private Object monObject;
  6.       public B() {
  7.          // ...
  8.       }
  9.    }
  10. }


Comment accéder depuis B() à l'attribut de la classe A ?




 
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...


---------------
XBox? http://www.gamertagdatabase.com
n°198684
Cherrytree
cn=?
Posté le 21-08-2002 à 12:14:14  profilanswer
 

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.


---------------
Le site de ma maman
n°198687
therier
heu...coucou!
Posté le 21-08-2002 à 12:15:26  profilanswer
 


De toutes façon ce code est un peu moisi....
 
 
Que cherches tu a faire?
 
 


---------------
XBox? http://www.gamertagdatabase.com
n°198690
bobuse
Posté le 21-08-2002 à 12:15:59  profilanswer
 

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...



:heink:

n°198691
bobuse
Posté le 21-08-2002 à 12:16:26  profilanswer
 

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  :(

n°198696
Cherrytree
cn=?
Posté le 21-08-2002 à 12:18:13  profilanswer
 

protected est justement là pour que la classe fille et ses suivantes ou ses soeurs, puissent travailler sur monObjet.


---------------
Le site de ma maman
n°198699
darklord
You're welcome
Posté le 21-08-2002 à 12:19:09  profilanswer
 

une inner class qui est publique c'est n'importe quoi


---------------
Just because you feel good does not make you right
n°198702
--greg--
Posté le 21-08-2002 à 12:20:01  profilanswer
 

DarkLord a écrit a écrit :

une inner class qui est publique c'est n'importe quoi



le pur darklord style is back ! :D

n°198703
Cherrytree
cn=?
Posté le 21-08-2002 à 12:20:15  profilanswer
 

Oups, j'avais pas vu que c'était une inner class : je raconte n'importe quoi depuis tout à l'heure.


---------------
Le site de ma maman
mood
Publicité
Posté le 21-08-2002 à 12:20:15  profilanswer
 

n°198704
Cherrytree
cn=?
Posté le 21-08-2002 à 12:20:58  profilanswer
 

Je suis une sous-merde. :jap:


---------------
Le site de ma maman
n°198708
therier
heu...coucou!
Posté le 21-08-2002 à 12:21:35  profilanswer
 

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!  :D  
 
Bon, ok je sors! :D  
 
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!  :D


---------------
XBox? http://www.gamertagdatabase.com
n°198712
darklord
You're welcome
Posté le 21-08-2002 à 12:22:42  profilanswer
 

therier a écrit a écrit :

 
 
Ben non, c public pour la classe qui englobe le tout!  :D  
 
Bon, ok je sors! :D  
 
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!  :D  




 
surtout que si tu regardes tes .class générés il y a deux fichier séparés ...

n°198718
therier
heu...coucou!
Posté le 21-08-2002 à 12:26:42  profilanswer
 

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...
 
 


---------------
XBox? http://www.gamertagdatabase.com
n°198724
bobuse
Posté le 21-08-2002 à 12:29:28  profilanswer
 

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 ?

n°198726
darklord
You're welcome
Posté le 21-08-2002 à 12:30:02  profilanswer
 

si ta raison est d'avoir moins de fichier OUI OUI et OUUIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII


Message édité par darklord le 21-08-2002 à 12:30:11
n°198727
--greg--
Posté le 21-08-2002 à 12:30:11  profilanswer
 

oui
les packages c pas pour les chiens
:D

n°198730
therier
heu...coucou!
Posté le 21-08-2002 à 12:31:24  profilanswer
 

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!  :D  
 


---------------
XBox? http://www.gamertagdatabase.com
n°198741
Cherrytree
cn=?
Posté le 21-08-2002 à 12:35:38  profilanswer
 

+1


---------------
Le site de ma maman
n°198745
bobuse
Posté le 21-08-2002 à 12:39:16  profilanswer
 

ok les packages et tout et tout, je m'en sers.
Mais bon ... ok ok ... je suis pas encore au top de l'organisation. :ange:  
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 !


Message édité par bobuse le 21-08-2002 à 12:40:04
n°198750
bobuse
Posté le 21-08-2002 à 12:45:17  profilanswer
 

En rédigeant ce topic, je me disais bien que c'était un peu crad aussi  :D  
C'est en sciant que Léonard de Vinci

n°198764
--greg--
Posté le 21-08-2002 à 13:30:31  profilanswer
 

[:xp1700]

n°198821
benou
Posté le 21-08-2002 à 14:19:36  profilanswer
 

bobuse a écrit a écrit :

Voilà :

Code :
  1. public class A {
  2.    private Object monObject;
  3.    // ... blabla ...
  4.    public class B {
  5.       private Object monObject;
  6.       public B() {
  7.          // ...
  8.       }
  9.    }
  10. }


Comment accéder depuis B() à l'attribut de la classe A ?




 
j'ai pas le courage de tout lire, mais la répons eest ca :  
 

Code :
  1. public class A {
  2.    private Object monObject;
  3.    // ... blabla ...
  4.    public class B {
  5.       private Object monObject;
  6.       public B() {
  7.          System.out.println(A.this.monObject);
  8.          // ...
  9.       }
  10.    }
  11. }

n°198823
benou
Posté le 21-08-2002 à 14:21:24  profilanswer
 

DarkLord a écrit a écrit :

une inner class qui est publique c'est n'importe quoi




bha nonm !
 
regarde java.util.Map.Entry !

n°198872
therier
heu...coucou!
Posté le 21-08-2002 à 14:55:30  profilanswer
 

benou a écrit a écrit :

 
bha nonm !
 
regarde java.util.Map.Entry !




 
oui, mais là elle est static!  :D  
 
Ca veut dire que tu pourras créer cet objet via une classe et non via une INSTANCE de classe.
 


---------------
XBox? http://www.gamertagdatabase.com
n°198873
darklord
You're welcome
Posté le 21-08-2002 à 14:56:32  profilanswer
 

therier a écrit a écrit :

 
 
oui, mais là elle est static!  :D  
 
Ca veut dire que tu pourras créer cet objet via une classe et non via une INSTANCE de classe.
 
 




 
 :jap: * 100000
 
 
benou >>>  :kaola:

n°198880
bobuse
Posté le 21-08-2002 à 15:02:21  profilanswer
 

benou a écrit a écrit :

 
 
j'ai pas le courage de tout lire, mais la répons eest ca :  
 

Code :
  1. public class A {
  2.    private Object monObject;
  3.    // ... blabla ...
  4.    public class B {
  5.       private Object monObject;
  6.       public B() {
  7.          System.out.println(A.this.monObject);
  8.          // ...
  9.       }
  10.    }
  11. }






 :jap:  :jap:  :jap: 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.

n°198887
therier
heu...coucou!
Posté le 21-08-2002 à 15:05:30  profilanswer
 

bobuse a écrit a écrit :

 
 :jap:  :jap:  :jap: 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.




 
 :D  :D  :D  
 
Depuis tout à l'heure j'avais compris le contraire!!!
 
 :D  :D  :D  


---------------
XBox? http://www.gamertagdatabase.com
n°198894
bobuse
Posté le 21-08-2002 à 15:12:03  profilanswer
 

therier a écrit a écrit :

 
 
 :D  :D  :D  
 
Depuis tout à l'heure j'avais compris le contraire!!!
 
 :D  :D  :D  
 




c'est bien ce qu'il m'avait semblé  :D

n°198905
benou
Posté le 21-08-2002 à 15:20:27  profilanswer
 

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 ?

n°198921
bobuse
Posté le 21-08-2002 à 15:30:23  profilanswer
 

benou a écrit a écrit :

 
je connais pas les classes static ... tu explique ?



:sol:

n°198997
therier
heu...coucou!
Posté le 21-08-2002 à 16:45:53  profilanswer
 

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 :
  1. public classe CompteurALaCon {
  2. static int count1 = 0;
  3. int count2 = 0;
  4. public static int inc1(){
  5. return count1++;
  6. }
  7. public int inc2(){
  8. return count2++;
  9. }
  10. }


 
dans un main, tu peux faire:
 

Code :
  1. System.out.println("1="+CompteurALaCon.inc1());
  2. System.out.println("2="+CompteurALaCon.inc1());
  3. System.out.println("1="+new CompteurALaCon().inc2()); 
  4. System.out.println("2="+new CompteurALaCon().inc2());


 
ça donne:
 
1
2
1
1
 
par exemple...


---------------
XBox? http://www.gamertagdatabase.com
n°199008
darklord
You're welcome
Posté le 21-08-2002 à 16:55:09  profilanswer
 

[:xp1700]

n°199020
benou
Posté le 21-08-2002 à 16:59:09  profilanswer
 

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 !

n°199022
benou
Posté le 21-08-2002 à 16:59:45  profilanswer
 

DarkLord a écrit a écrit :

 [:xp1700]  




:non:

n°199023
darklord
You're welcome
Posté le 21-08-2002 à 17:00:55  profilanswer
 
n°199025
darklord
You're welcome
Posté le 21-08-2002 à 17:01:33  profilanswer
 

ceci dit une classe statique ca n'existe pas ... par contre une inner class peut etre statique mais c'est différent.
 
A+

n°199030
therier
heu...coucou!
Posté le 21-08-2002 à 17:08:50  profilanswer
 

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+




 
 :jap:


---------------
XBox? http://www.gamertagdatabase.com
n°199031
bobuse
Posté le 21-08-2002 à 17:08:55  profilanswer
 

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 ! :jap:

n°199033
therier
heu...coucou!
Posté le 21-08-2002 à 17:09:52  profilanswer
 

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!  :hap:


---------------
XBox? http://www.gamertagdatabase.com
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  A propos des inner class, et des inner class statiques

 

Sujets relatifs
truc de fou : j'ai fait une class qui fait monter mon CPU à 90° !A propos de la taille des cellules dans un tableau
[VBS] Prob class introuvable Win32_DesktopMonitor[java] A propos des applets swing
[HTML] cellpadding ok, nouvelle question : lier les class ?a propos des menus dans les sites web
[CSS] les class, variable local ou global??[ CSS ] comment defini une class avec une taille de police
[css] pb avec les class et les balise A[VC++] A propos d'une CPropertySheet
Plus de sujets relatifs à : A propos des inner class, et des inner class statiques


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR