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

 


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

A propos des inner class, et des inner class statiques

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

Reprise du message précédent :

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 21-08-2002 à 17:09:52  profilanswer
 

n°199034
El_gringo
Posté le 21-08-2002 à 17:12:25  profilanswer
 

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 ?

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

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 ?




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


---------------
XBox? http://www.gamertagdatabase.com
n°199040
El_gringo
Posté le 21-08-2002 à 17:20:46  profilanswer
 

therier a écrit a écrit :

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




 
Ha ouais. Je suis lourd moi ! :(

n°199056
bobuse
Posté le 21-08-2002 à 17:37:47  profilanswer
 

heu moi aussi je crois !
La classe Point2D.Float est pas statique, donc je comprends plus, mais je vais réfléchir, ça me fera pas de mal :)

n°199060
bobuse
Posté le 21-08-2002 à 17:39:12  profilanswer
 

A mais si c'est static ! Mais pourtant, ça s'instancie bien cette chose (Point2D.Float), alors kezako ?

n°199062
darklord
You're welcome
Posté le 21-08-2002 à 17:40:47  profilanswer
 

tu fais new Point2D.Float :heink:

n°199064
bobuse
Posté le 21-08-2002 à 17:41:35  profilanswer
 

Haha !
Ce serait qu'en fait, j'ai pas besoin d'instancier un Point2D pour instancier un Point2D.Float. Scusez, j'ai le cerf-volant !
 
Enfin, si ça peut en aider d'autres à comprendre ... :D non y a personne à part moi  :sweat:

n°199067
therier
heu...coucou!
Posté le 21-08-2002 à 17:44:45  profilanswer
 

bobuse a écrit a écrit :

Haha !
Ce serait qu'en fait, j'ai pas besoin d'instancier un Point2D pour instancier un Point2D.Float. Scusez, j'ai le cerf-volant !
 
Enfin, si ça peut en aider d'autres à comprendre ... :D non y a personne à part moi  :sweat:  




 
...tu n'instancies pas non plus de Point2D.Float...
 
ni l'un, ni l'autre si tu veux...
 
Point2D te donne accés à une de ses inner classe qui est statique.
 


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

therier a écrit a écrit :

 
 
...tu n'instancies pas non plus de Point2D.Float...
 
ni l'un, ni l'autre si tu veux...
 
Point2D te donne accés à une de ses inner classe qui est statique.
 
 



Ha si tu instancies Point2D.Float, à moins qu'il contienne lui-même des membres/méthodes/classes publiques statiques (et il en contient pas après verif. !)!
 
J'ai bon, j'ai bon ?


Message édité par bobuse le 21-08-2002 à 17:47:37
mood
Publicité
Posté le 21-08-2002 à 17:46:32  profilanswer
 

n°199073
El_gringo
Posté le 21-08-2002 à 17:49:34  profilanswer
 

Ms, dans ce cas, si on instancie JAMMAIS une inner class static, ça veut dire qu'une telle classe ne peux avoir que des méthodes, attributs, ou inner class, statiques ! sinon ça n'a aucun sens...

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

bobuse a écrit a écrit :

Ha si tu instancies Point2D.Float, à moins qu'il contienne lui-même des membres/méthodes/classes statiques !
 
J'ai bon, j'ai bon ?




 
C'est une CLASSE STATIQUE!!!!!  :pt1cable:  
 
Je vous conseille la lecture de "thinking in Java", ouvrage (en ligne) de reference...
 
Je me rends, suis fatigué....  :sleep:  
 
 
 


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

oui dans un sens, ça n'a aucun sens !

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

El_Gringo a écrit a écrit :

Ms, dans ce cas, si on instancie JAMMAIS une inner class static, ça veut dire qu'une telle classe ne peux avoir que des méthodes, attributs, ou inner class, statiques ! sinon ça n'a aucun sens...




 
Regarde Map.Entry, c'est un bon exemple de pourquoi et comment on utilise une inner classe statique.
 
Attention à ne pas confondre gestion de l'accés (private, protected, publique ou friendly) avec la nature de la classe (final, static, abstract...).


---------------
XBox? http://www.gamertagdatabase.com
n°199081
--greg--
Posté le 21-08-2002 à 17:54:33  profilanswer
 

FRIENDLY?
d'ou ça sort ça???

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

--greg-- a écrit a écrit :

FRIENDLY?
d'ou ça sort ça???




 
"package friendly" c quand tu mets rien devant.
 
En C++ tu peux être friendly (visible) que d'une classe par exemple. En Java, tu precises pas de classe, mais c friendly a tout ton paquage.


---------------
XBox? http://www.gamertagdatabase.com
n°199085
darklord
You're welcome
Posté le 21-08-2002 à 17:57:04  profilanswer
 

therier a écrit a écrit :

 
 
"package friendly" c quand tu mets rien devant.
 
En C++ tu peux être friendly (visible) que d'une classe par exemple. En Java, tu precises pas de classe, mais c friendly a tout ton paquage.
 




 
c pas package friendly c package protected :o

n°199087
bobuse
Posté le 21-08-2002 à 17:58:23  profilanswer
 

therier a écrit a écrit :

 
 
C'est une CLASSE STATIQUE!!!!!  :pt1cable:  
 




Et alors ?
doc de l'API java :
 

Citation :


public static class Point2D.Double


 http://java.sun.com/j2se/1.4/docs/ [...] ouble.html  
 
Code qui marche :

Code :
  1. import java.awt.geom.Point2D;
  2. public class test {
  3.    public test() {
  4.       Point2D.Float p=new Point2D.Float();
  5.    }
  6. }


n°199088
therier
heu...coucou!
Posté le 21-08-2002 à 17:59:31  profilanswer
 

DarkLord a écrit a écrit :

 
 
c pas package friendly c package protected :o




 
ben c'est visible que de ton package...  
 
 


---------------
XBox? http://www.gamertagdatabase.com
n°199092
therier
heu...coucou!
Posté le 21-08-2002 à 18:06:01  profilanswer
 

bobuse a écrit a écrit :

 
Et alors ?
doc de l'API java :
 

Citation :


public static class Point2D.Double


 http://java.sun.com/j2se/1.4/docs/ [...] ouble.html  
 
Code qui marche :

Code :
  1. import java.awt.geom.Point2D;
  2. public class test {
  3.    public test() {
  4.       Point2D.Float p=new Point2D.Float();
  5.    }
  6. }


 




 
Point2D.Float c plus une astuce de conception qu'autre chose...
 
C pour obliger les gens à prefixé par Point2D puisque Float etends Point2D, ils auraient aussi bien pu creer une classe public FloatPoint2D etendant Point2D et c'etait torché...
 
 
Map.Entry est plus revelateur de l'interet (ténu!) d'une inner classe statique.
 


---------------
XBox? http://www.gamertagdatabase.com
n°199095
El_gringo
Posté le 21-08-2002 à 18:09:37  profilanswer
 

bobuse a écrit a écrit :

 
Et alors ?
doc de l'API java :
 

Citation :


public static class Point2D.Double


 http://java.sun.com/j2se/1.4/docs/ [...] ouble.html  
 
Code qui marche :

Code :
  1. import java.awt.geom.Point2D;
  2. public class test {
  3.    public test() {
  4.       Point2D.Float p=new Point2D.Float();
  5.    }
  6. }


 




 
new Point2D.Float();
apparement, ça cré juste une instance de Point2D, pas une instance de Point2D.Float();

n°199096
benou
Posté le 21-08-2002 à 18:10:58  profilanswer
 

therier a écrit a écrit :

 
Tu fais un new dessus?  :)  
 
donc: pas d'instance!  :hap:  




n'importe quoi !
 
c'est pas parce que moi je ne fais pas de ndew dessus que personne n'en a fait !
qu'est ce que tu veux que ce soit si c'est pas une instance :sarcastic:

n°199099
therier
heu...coucou!
Posté le 21-08-2002 à 18:12:23  profilanswer
 

benou a écrit a écrit :

 
n'importe quoi !
 
c'est pas parce que moi je ne fais pas de ndew dessus que personne n'en a fait !
qu'est ce que tu veux que ce soit si c'est pas une instance :sarcastic:
 




 
Si tu veux...En gros il n'y a qu'une seule instance si tu veux... :D  
 


---------------
XBox? http://www.gamertagdatabase.com
n°199101
therier
heu...coucou!
Posté le 21-08-2002 à 18:13:25  profilanswer
 

El_Gringo a écrit a écrit :

 
 
new Point2D.Float();
apparement, ça cré juste une instance de Point2D, pas une instance de Point2D.Float();




 
Pasque Point2D.Float  EST  un Point2D (héritage)!!!  :D  
 


---------------
XBox? http://www.gamertagdatabase.com
n°199102
--greg--
Posté le 21-08-2002 à 18:13:40  profilanswer
 

therier a écrit a écrit :

 
 
ben c'est visible que de ton package...  
 
 
 



vivi non mais c le mot clé friendly qui me disait rien du tout, et pour cause.

n°199103
El_gringo
Posté le 21-08-2002 à 18:14:27  profilanswer
 

therier a écrit a écrit :

 
 
Pasque Point2D.Float  EST  un Point2D (héritage)!!!  :D  




 
ok, ok...

n°199105
therier
heu...coucou!
Posté le 21-08-2002 à 18:14:52  profilanswer
 

--greg-- a écrit a écrit :

vivi non mais c le mot clé friendly qui me disait rien du tout, et pour cause.




 
ouep!  :D  
 
...des relents de C++....  :D  


---------------
XBox? http://www.gamertagdatabase.com
n°199107
--greg--
Posté le 21-08-2002 à 18:15:15  profilanswer
 

therier a écrit a écrit :

 
 
ouep!  :D  
 
...des relents de C++....  :D  
 



:D
 

n°199108
benou
Posté le 21-08-2002 à 18:15:29  profilanswer
 

therier a écrit a écrit :

 
Si tu veux...En gros il n'y a qu'une seule instance si tu veux... :D



ben non y a pas qu'une seule instance !
regarde les Map.Entry : il y a plein d'instance de cette classe !
 
t'es sûr que tu maîtrises parfaitement le sujet, mmmmm ?

n°199113
therier
heu...coucou!
Posté le 21-08-2002 à 18:19:11  profilanswer
 

benou a écrit a écrit :

 
ben non y a pas qu'une seule instance !
regarde les Map.Entry : il y a plein d'instance de cette classe !
 
t'es sûr que tu maîtrises parfaitement le sujet, mmmmm ?




 
Tu as surement raison  :D :
 
 
public static interface Map.Entry
 
A map entry (key-value pair). The Map.entrySet method returns a collection-view of the map, whose elements are of this class. The only way to obtain a reference to a map entry is from the iterator of this collection-view. These Map.Entry objects are valid only for the duration of the iteration; more formally, the behavior of a map entry is undefined if the backing map has been modified after the entry was returned by the iterator, except through the iterator's own remove operation, or through the setValue operation on a map entry returned by the iterator.

 
 
Mais bon, je sais lire!  :D  


---------------
XBox? http://www.gamertagdatabase.com
n°199117
benou
Posté le 21-08-2002 à 18:32:16  profilanswer
 

t'as voulu dire quoi là ? je vois pas en quoi cette citation de la javadoc est en rapport avec ce dont on parle ...

n°199124
therier
heu...coucou!
Posté le 21-08-2002 à 18:35:58  profilanswer
 

benou a écrit a écrit :

t'as voulu dire quoi là ? je vois pas en quoi cette citation de la javadoc est en rapport avec ce dont on parle ...




 
Bon ben essaie de voir comment ça marche.
 


---------------
XBox? http://www.gamertagdatabase.com
n°199125
- Renaud -
Posté le 21-08-2002 à 18:37:25  profilanswer
 

my $.02:
 
inner classe statique:  
   - ne permet d'acceder qu'aux attributs / methodes statiques de la outer classe (meme private)
   - peut etre instancier n'importe ou
   - pourrait etre mis dans un fichier a part (si ce n'est pour l'acces aux champs private)
   - utilisee surtout pour des outils specifiques a la classe
 
inner classes non statiques:  
   - permet d'acceder a toute la outer classe
   - ne peut etre instancier qu'a partir d'une instance de la classe
   - ne pourrait pas etre mis dans un fichier a part (sauf modification structurelle)
   - utilisee surtout pour des outils specifiques a l'instance

n°199127
therier
heu...coucou!
Posté le 21-08-2002 à 18:40:26  profilanswer
 

- Renaud - a écrit a écrit :

my $.02:
 
inner classe statique:  
   - ne permet d'acceder qu'aux attributs / methodes statiques de la outer classe (meme private)
   - peut etre instancier n'importe ou
   - pourrait etre mis dans un fichier a part (si ce n'est pour l'acces aux champs private)
   - utilisee surtout pour des outils specifiques a la classe
 
inner classes non statiques:  
   - permet d'acceder a toute la outer classe
   - ne peut etre instancier qu'a partir d'une instance de la classe
   - ne pourrait pas etre mis dans un fichier a part (sauf modification structurelle)
   - utilisee surtout pour des outils specifiques a l'instance
 




 
bon p'tit résumé!  :jap:  
 


---------------
XBox? http://www.gamertagdatabase.com
n°199132
benou
Posté le 21-08-2002 à 18:43:39  profilanswer
 

therier a écrit a écrit :

 
Bon ben essaie de voir comment ça marche.




mais je vois comment ca marche, moi !
j'affirme pas des trucs quand je sais pas, moi !
 
dingue ca les gens qui acceptent pas de dire qu'ils se sont trompés !


Message édité par benou le 21-08-2002 à 18:44:22
n°199133
therier
heu...coucou!
Posté le 21-08-2002 à 18:44:42  profilanswer
 

benou a écrit a écrit :

 
mais je vois comment ca marche, moi !
j'affirme pas des trucs quand je sais pas, mio !
 
dingue ca les gens qui accepete pas de dire qu'ils se sont trompés !
 
 




 
trompé où?
 


---------------
XBox? http://www.gamertagdatabase.com
n°199134
benou
Posté le 21-08-2002 à 18:47:27  profilanswer
 

Citation :

static sur la classe signifie que la classe peut être utilisé sans instanciation.  

n°199137
therier
heu...coucou!
Posté le 21-08-2002 à 18:49:55  profilanswer
 

benou a écrit a écrit :

Citation :

static sur la classe signifie que la classe peut être utilisé sans instanciation.  






 
oui, tu peux l'utiliser sans faire de new, elle est auto-allouée au depart, pour simplifier.
 
Je m'ai pas trompé! [:therier]
 


---------------
XBox? http://www.gamertagdatabase.com
n°199138
benou
Posté le 21-08-2002 à 18:52:06  profilanswer
 

therier a écrit a écrit :

 
oui, tu peux l'utiliser sans faire de new, elle est auto-allouée au depart, pour simplifier.




putin mais non !!!!!
elle est pas "auto-allouée" !  
 
c'est la outer class qui la créé en fesant des new, comme pour n'importe quelle classe.
 
et la outer class peut en créer autant d'instance qu'elle veut. Y en a pas qu'une ! c'est pas comme les attribut static !


Message édité par benou le 21-08-2002 à 18:52:55
n°199141
- Renaud -
Posté le 21-08-2002 à 18:55:16  profilanswer
 

benou a écrit a écrit :

Citation :

static sur la classe signifie que la classe peut être utilisé sans instanciation.  






 
pour etre plus precis, c'est sans instanciation de la outer classe

n°199144
benou
Posté le 21-08-2002 à 18:56:44  profilanswer
 

- Renaud - a écrit a écrit :

 
pour etre plus precis, c'est sans instanciation de la outer classe




bha merde, tu me mets dans le doute maintenant :cry:
 
bon, je vais aller me documenter, je reviens plus tard.

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4

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