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

 


 Mot :   Pseudo :  
 
 Page :   1  2  3  4
Page Suivante
Auteur Sujet :

A propos des inner class, et des inner class statiques

n°199620
bobuse
Posté le 22-08-2002 à 11:19:03  profilanswer
 

Reprise du message précédent :
Heu comment on fait pour verrouiller un topic ? :sarcastic:

mood
Publicité
Posté le 22-08-2002 à 11:19:03  profilanswer
 

n°199623
Cherrytree
cn=?
Posté le 22-08-2002 à 11:20:24  profilanswer
 

[:cherrytree2] was here.


---------------
Le site de ma maman
n°199642
darklord
You're welcome
Posté le 22-08-2002 à 11:30:00  profilanswer
 

bobuse a écrit a écrit :

Heu comment on fait pour verrouiller un topic ? :sarcastic:  




 
on appelle le gentil modo

n°199643
El_gringo
Posté le 22-08-2002 à 11:30:40  profilanswer
 

therier a écrit a écrit :

 
 
Gros Blaireau!  :fou:  t'as raison t'es le roi et je suis un gland!  :heink:  
Tchao grande lumière intersidérale!




 
...oula, non, faut pas l'prendre comme ça !
g pas dit que t'étais un gland (et encore moins que je suis un roi !), ms, à moins que ça soit moi le gland, tu m'a dit un truc faux. Extrait :
 

El_Gringo a écrit a écrit :

 
J'imagine qu'une inner class statique, c'est une inner class publique (sinon ça n'a pas de sens), qu'on peut instancier, sans avoir d'instance de la classe dans laquelle elle est contenue. c ça ?  




 

therier a écrit a écrit :

 
non, tu ne l'instancie pas l'inner classe! elle est sttique!      
Tu y accedes et tu l'utilise, c'est tout.  




 
 
...Je m'trompe pas, c bien une grosse erreur de me dire ça, non !?

n°199685
darklord
You're welcome
Posté le 22-08-2002 à 11:52:23  profilanswer
 

mais enfin une classe statique ne s'instancie pas !!!

n°199696
El_gringo
Posté le 22-08-2002 à 11:57:54  profilanswer
 

DarkLord a écrit a écrit :

mais enfin une classe statique ne s'instancie pas !!!




 
Hé merde... je rien comprit alors !!!  :(  
Pourtant, benou avait l'air d'accord avec ça :

une inner class static, ça signifie que tu peux l'instancier (ou t'en servir de manière générale) sans instancier la outer classe.  


 
Qui revient exactement au même que ce que j'ai dit !

n°199699
therier
heu...coucou!
Posté le 22-08-2002 à 11:58:52  profilanswer
 

DarkLord a écrit a écrit :

mais enfin une classe statique ne s'instancie pas !!!




 
oui, mais tu PEUX le faire, si tu veux, et dans le cas precis de Point2D, c ce qu'il faut faire...
 
voilà.
 
 
 
signé : Le Gland (qui a compris ça tout seul)
 
 
 


---------------
XBox? http://www.gamertagdatabase.com
n°199709
El_gringo
Posté le 22-08-2002 à 12:04:15  profilanswer
 

therier a écrit a écrit :

 
signé : Le Gland (qui a compris ça tout seul)




 
...Le Gland Vexé !
'Fallait pas mal le prendre ce que j'ai dit. C vrai qu'en me relisant, ça fait aggressif, dsl.  :jap:

n°199712
therier
heu...coucou!
Posté le 22-08-2002 à 12:06:21  profilanswer
 

El_Gringo a écrit a écrit :

 
 
...Le Gland Vexé !
'Fallait pas mal le prendre ce que j'ai dit. C vrai qu'en me relisant, ça fait aggressif, dsl.  :jap:  




 
Y a pas de mal... J'ai pour le moins été agressif aussi. ;)  
 
Allez, bisous? [:sateeva]  
 
 :D


---------------
XBox? http://www.gamertagdatabase.com
n°199718
El_gringo
Posté le 22-08-2002 à 12:11:03  profilanswer
 

therier a écrit a écrit :

 
 
Y a pas de mal... J'ai pour le moins été agressif aussi. ;)  
 
Allez, bisous? [:sateeva]  
 
 :D  




 
Y font quoi tes smiley avec leurs mains, là ? ça serai pas un truc un peu vicieux par hasard !? Non, parce qu'une poingnée de main, j'veux bien, ms on s'arrête là hein !? :D

mood
Publicité
Posté le 22-08-2002 à 12:11:03  profilanswer
 

n°199720
bobuse
Posté le 22-08-2002 à 12:13:02  profilanswer
 

Youpi ! Tout va bien alors !
 
Ca m'apprendra à faire des trucs chelou !  ;)  :D

n°199817
therier
heu...coucou!
Posté le 22-08-2002 à 13:57:35  profilanswer
 

El_Gringo a écrit a écrit :

 
 
Y font quoi tes smiley avec leurs mains, là ? ça serai pas un truc un peu vicieux par hasard !? Non, parce qu'une poingnée de main, j'veux bien, ms on s'arrête là hein !? :D




 
Ce sont 2 smileys tres tres amicaux qui se grattent reciproquement la tête, c tout....  :D  
 


---------------
XBox? http://www.gamertagdatabase.com
n°199818
therier
heu...coucou!
Posté le 22-08-2002 à 13:59:02  profilanswer
 

bobuse a écrit a écrit :

Youpi ! Tout va bien alors !
 
Ca m'apprendra à faire des trucs chelou !  ;)  :D  




 
Ah bas les inner class publique non statique!!!! [:zjk]  
 


---------------
XBox? http://www.gamertagdatabase.com
n°199868
benou
Posté le 22-08-2002 à 14:52:33  profilanswer
 

DarkLord a écrit a écrit :

mais enfin une classe statique ne s'instancie pas !!!




[:ruisseau de larmes]  
 
mais c'est pas vrai ! on va jamais arriver à tous être d'accord la dessus, même au bout de 4 pages ?
 
dark, regarde le code que j'ai donnée, (page 2 ou 3) tu verras que j'instancie unec alsse statique.

n°199885
therier
heu...coucou!
Posté le 22-08-2002 à 15:01:42  profilanswer
 

benou a écrit a écrit :

 
[:ruisseau de larmes]  
 
mais c'est pas vrai ! on va jamais arriver à tous être d'accord la dessus, même au bout de 4 pages ?
 
dark, regarde le code que j'ai donnée, (page 2 ou 3) tu verras que j'instancie unec alsse statique.




 
Une classe statique n'est PAS FAITE POUR ETRE INSTANCIEE (mais, bien sur, on peut le faire!), SAUF, quand c'est une INNER CLASSE STATIQUE comme Point2D.Float car c'est une spécialisation de la classe abstraite Point2D. Le statique n'est là que POUR RENDRE LA CLASSE ACCESSIBLE.
 
 :D  
 
 
 


---------------
XBox? http://www.gamertagdatabase.com
n°200012
BifaceMcLe​OD
The HighGlandeur
Posté le 22-08-2002 à 16:43:29  profilanswer
 

- Renaud - a écrit a écrit :

 
ben a ce niveau la c'est pas tres clair
a mon avis la logique aurait voulu que l'on ai une nouvelle instance a chaque fois, car dans un contexte (outer instance) different et donc des attributs statiques specifiques a chaque instance
 
Cependant, au niveau de l'implem, ca devait etre trop lourd, donc Sun a decide' de n'avoir qu'un seul object Class meme dans le cas d'inner classes non statiques.
 
Ce qui me fait dire que c'est peut etre la foacon dont ont evolue les choses, est le fait de ne pas avoir droit aux statiques dans une inner classe non statique :
   --> en effet,  si on estime naturel que l'inner classe non statique soit partagee, alors il ne devrait y avoir aucune raison a interdire les champs statiques
   --> si l'inner classe non statique ne devait pas etre partagee, et qu'elle l'est a cause de l'implementation, alors les champs statiques posent un probleme, qui se resout en les interdissant.
Renaud




 :hello:  :hello: Renaud !
 
C'est curieux, moi j'avais une définition plus simple de l'inner classe non statique : pour moi, c'était simplement une classe qui (contrairement à l'inner classe statique) gardait juste une référence (cachée) sur l'instance de l'outer classe qui l'avait "créée".  
 
Exemple :

Code :
  1. public class A {
  2.   private int  n;
  3.   public A(int n) {
  4.     this.n = n;
  5.   }
  6.   public class B {
  7.     public B() {
  8.       // On peut aussi écrire "A.this.n" à la place de "n".
  9.       System.out.println("n=" + n);
  10.     }
  11.   }
  12.   public static void main(String[] args) {
  13.     A    a1 = new A(10);
  14.     A    a2 = new A(20);
  15.     A.B  b1 = a1.new B(); // Affiche n=10
  16.     A.B  b2 = a2.new B(); // Affiche n=20
  17.     A.B  b3 = a2.new B(); // Affiche n=20
  18.   }
  19. }


Du coup, je ne comprends pas trop le débat sur le coup des instances de java.lang.Class multiples pour les inner classes non statiques...

n°200055
- Renaud -
Posté le 22-08-2002 à 17:44:52  profilanswer
 

BifaceMcLeOD a écrit a écrit :

 
 
Du coup, je ne comprends pas trop le débat sur le coup des instances de java.lang.Class multiples pour les inner classes non statiques...




 
Ben moi ce qui me tracasse, c'est le fait de ne pas avoir droit aux statiques pour les inner classes non statiques...

n°200057
therier
heu...coucou!
Posté le 22-08-2002 à 17:47:06  profilanswer
 

- Renaud - a écrit a écrit :

 
 
Ben moi ce qui me tracasse, c'est le fait de ne pas avoir droit aux statiques pour les inner classes non statiques...
 




 
J'avais emis un avis la dessus quelques posts plus haut...  :bounce:


---------------
XBox? http://www.gamertagdatabase.com
n°200070
- Renaud -
Posté le 22-08-2002 à 18:09:18  profilanswer
 

therier a écrit a écrit :

 
 
Je pense que c'est plus simple que ça.
 
On part sur une outer non statique (et publique).
 
si ton inner est statique, la jvm va reserver statiquement au lancement de la place mémoire pour cette classe. Si tu as un champ statique dedans, la jvm allouera aussi de la place pour ce champ.
 
si ton inner n'est pas statique, la jvm ne reserve pas de place, alors, que devient le membre statique censé être alloué au demarrage? Ben c'est dur de l'allouer du coup... puisqu'il n'est pas censé exister  :pt1cable:  
 
Je sais pas si je suis clair...[:miracle]
 




 
ben oui, mais je doute que l'allocation de la place memoire pour les classes soit statique, a mon avis c'est dynamique au chargement de la classe et non au demarrage.
 
Sinon comment savoir quelle place reserver etant donne que l'on ne connait pas les classes qui vont etre utilisees.

n°200073
therier
heu...coucou!
Posté le 22-08-2002 à 18:17:01  profilanswer
 

- Renaud - a écrit a écrit :

 
 
ben oui, mais je doute que l'allocation de la place memoire pour les classes soit statique, a mon avis c'est dynamique au chargement de la classe et non au demarrage.
 
Sinon comment savoir quelle place reserver etant donne que l'on ne connait pas les classes qui vont etre utilisees.




 
Justement, je pense que les statiques sont initialisées au demarrage.


---------------
XBox? http://www.gamertagdatabase.com
n°200083
- Renaud -
Posté le 22-08-2002 à 18:27:41  profilanswer
 

therier a écrit a écrit :

 
 
Justement, je pense que les statiques sont initialisées au demarrage.




 
les classes sont chargees en fonction des besoins (java -verbose:class ...), et je ne pense pas que les statiques soient initialises hors des classes.
 
NB: il n'y a aucun fichier pour referencer les classes, et je vois mal la JVM au depart scanner tout le classpath pour charger les classes ou meme seulement les statiques

n°202033
BifaceMcLe​OD
The HighGlandeur
Posté le 26-08-2002 à 15:40:42  profilanswer
 

Oui, je confirme ce que dit Renaud : on le voit aussi au débogueur, le code statique (initialiseur de classe) est exécuté lorsque la classe est chargée, et la classe n'est chargée que lorsque la JVM en a besoin (typiquement lorsqu'une instance de cette classe ou d'une sous-classe est créée, ou lorsqu'une méthode (resp. un attribut) statique de cette classe ou d'une sous-classe est exécutée (resp. lu ou modifié)).


Message édité par BifaceMcLeOD le 26-08-2002 à 15:40:58
n°202071
Cherrytree
cn=?
Posté le 26-08-2002 à 16:05:08  profilanswer
 

Merci Biface ! :hello:


---------------
Le site de ma maman
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4
Page Suivante

Aller à :
Ajouter une réponse
 

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