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

 


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

[java] Methode et champs static

n°454773
lorill
Posté le 11-07-2003 à 10:45:03  profilanswer
 

Reprise du message précédent :

chrisbk a écrit :


Pis a l'usage c quand meme + lourd :O  


si tu laisses ton *data dans la nature, j'en conviens. Si tu l'encapsule correctement dans une classe, ben rajouter un computeCRC32 comme methode de cette classe, c'est pas vraiment plus lourd.

mood
Publicité
Posté le 11-07-2003 à 10:45:03  profilanswer
 

n°454794
chrisbk
-
Posté le 11-07-2003 à 10:51:15  profilanswer
 

lorill a écrit :


si tu laisses ton *data dans la nature, j'en conviens. Si tu l'encapsule correctement dans une classe, ben rajouter un computeCRC32 comme methode de cette classe, c'est pas vraiment plus lourd.


 
bah l'exemple la est plutot bon vu que j'utilise le CRC32 pour a peu pres tout ce qui a besoin d'etre identifié de maniere unique (allant de la chaine de caractere a une image), je me vois pas dupliquer cette fonction dans toutes les classes en ayant besoin [:spamafote]

n°454797
kadreg
profil: Utilisateur
Posté le 11-07-2003 à 10:52:11  profilanswer
 

chrisbk a écrit :


j'utilise le CRC32 pour a peu pres tout ce qui a besoin d'etre identifié de maniere unique  


 
 :??:


Message édité par kadreg le 11-07-2003 à 10:52:24

---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°454802
chrisbk
-
Posté le 11-07-2003 à 10:56:18  profilanswer
 


 
bah vi, ca me ressort un machin 32bits rapidement. J'utilise ca comme identifiant, ca me coute pas cher (et vu que generalement mes collections sont pas du genre a compter 80000 element g pas encore eu de soucis de collision)
 
y'a un pb ? [:ciler]

n°454810
lorill
Posté le 11-07-2003 à 11:00:38  profilanswer
 

chrisbk a écrit :


bah l'exemple la est plutot bon vu que j'utilise le CRC32 pour a peu pres tout ce qui a besoin d'etre identifié de maniere unique (allant de la chaine de caractere a une image), je me vois pas dupliquer cette fonction dans toutes les classes en ayant besoin [:spamafote]


bah dans ce cas tu fais comme a dit kadreg, tu le ranges dans l'equivalent a System pour ton appli (ou alors tu le mets dans une classe de base, et les autres classes en héritent, ca depends du cas)

n°454811
kadreg
profil: Utilisateur
Posté le 11-07-2003 à 11:00:42  profilanswer
 

chrisbk a écrit :


y'a un pb ? [:ciler]


 
Disons que c'est typiquement le genre de choses qui va péter dans 5 ans en prod lorsque tu tomberas sur la première collision après des millions d'objets créés sans problèmes.
 


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°454838
Kahyman
Posté le 11-07-2003 à 11:25:05  profilanswer
 

kadreg a écrit :


 
Disons que c'est typiquement le genre de choses qui va péter dans 5 ans en prod lorsque tu tomberas sur la première collision après des millions d'objets créés sans problèmes.
 
 


 
Bah c'est un bete "hashage" qu'il fait... (non ?)
 
Les collisions sont possibles et normales, mais c'est pour ca que lorsqu'on utilise le hashage, tester uniquement l'egalite des hashs n'est pas suffisant. (deux donnees egales ont le meme hash, mais deux donnees ayant le meme hash ne sont pas forcement egales)
 
La seule question est de savoir si 32bits suffisent, si son algo repartis bien les hashs et s'il verifie bien l'egalite.

n°454840
El_gringo
Posté le 11-07-2003 à 11:25:16  profilanswer
 

DarkLord a écrit :


 
bin c'est exactement ce que j'ai dit en plus détaillé hein. Plus précisément ce n'est pas OO d'avoir une méthode sur un objet qui n'ait pas besoin d'une instance de l'objet pour fonctionner. Cela dit si c'est le cas il faut effectivement qu'elle soie statique.
 
tjrs pas d'accord avec moi? :heink:


 
Tu viens de reformuler ce que j'viens de dire, je peux qu'être d'accord !  [:tobrainc]

n°454842
darklord
You're welcome
Posté le 11-07-2003 à 11:25:45  profilanswer
 

El_gringo a écrit :


 
Tu viens de reformuler ce que j'viens de dire, je peux qu'être d'accord !  [:tobrainc]  


 
non c'est toi qui a reformulé mon post initial nuance :o


---------------
Just because you feel good does not make you right
n°454849
Kahyman
Posté le 11-07-2003 à 11:31:13  profilanswer
 

lorill a écrit :


 

Code :
  1. class MyFile
  2. {
  3. private byte[] data;
  4. public MyFile(data); //ou filename  
  5. long computeCRC32();
  6. }

 
 
et vu que tu touches pas au pointeurs, ca sera pas garbagé tant que t'aura l'instance de MyFile, vu que y'a une reference sur data.
 
et c'est pas plus dangereux que de passer un pointeur null a ta methode statique  [:sinclaire]  


 
Mouais bof, je prefere une classe utilitaire qui lui permet d'obtenir un singleton d'une instance de classe offrant la methode crc32(), methode definie dans une interface. Ainsi tu chache l'implem, tu separe les responsabilites, et tu centralise le probleme...
 
Je renommerais crc32() par hash() pour ne pas indiquer dans l'api le detail d'implem, ce qui laisse la possibilite de remplacer l'implem sans le montrer aux utilisateurs.
 
Ca ca me semble plus objet qu'une bete duplication de code dans toutes les classes (quelle horreur)... question mise a jour c'est horrible.

mood
Publicité
Posté le 11-07-2003 à 11:31:13  profilanswer
 

n°454854
El_gringo
Posté le 11-07-2003 à 11:32:31  profilanswer
 

DarkLord a écrit :


 
non c'est toi qui a reformulé mon post initial nuance :o


 
Bof, j'trouve pas. Mais bref, pour les méthodes "static", c'est pas très objet, mais c'est quand même bien pratique. Moi j'suis d'accord avec benou pour dire qu'il faut pas bêtemetn resté cloitré dans le concept objet, quite a se faire 100 fois plus chier dans certains cas. On a droit a quelques écarts (surtout quand ça simplifie la lisibilité, améliore les perfs, ...).

n°454870
noldor
Rockn'roll
Posté le 11-07-2003 à 11:39:57  profilanswer
 

donc, si on te suite bien Darklord, Java n'est pas 100% OO (voir par exemple java.lang.Math)

n°454877
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 11-07-2003 à 11:44:38  profilanswer
 

noldor a écrit :

donc, si on te suite bien Darklord, Java n'est pas 100% OO (voir par exemple java.lang.Math)


Ah nan mais ça c'est certain. J'veux dire, par essence, y a des opérateurs, des trucs comme ça, donc nonm c'est pas 100% OO [:spamafote]
Demander l'avis de lorill sur le sujet :jap:


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°454878
El_gringo
Posté le 11-07-2003 à 11:45:06  profilanswer
 

noldor a écrit :

donc, si on te suite bien Darklord, Java n'est pas 100% OO (voir par exemple java.lang.Math)


 
Ben non, Java n'est pas 100% OO de toute façon, même sans compter ça. Déja les types primitifs, c pas objet du tout !

n°454879
El_gringo
Posté le 11-07-2003 à 11:45:53  profilanswer
 

Taiche a écrit :


Ah nan mais ça c'est certain. J'veux dire, par essence, y a des opérateurs, des trucs comme ça, donc nonm c'est pas 100% OO [:spamafote]
Demander l'avis de lorill sur le sujet :jap:


 
Des opérateurs ça empêche pas d'être objet. Enfin, s'ils peuvent être surchargés!

n°454882
Kahyman
Posté le 11-07-2003 à 11:47:41  profilanswer
 

Taiche a écrit :


Ah nan mais ça c'est certain. J'veux dire, par essence, y a des opérateurs, des trucs comme ça, donc nonm c'est pas 100% OO [:spamafote]
Demander l'avis de lorill sur le sujet :jap:


 
Effectivement 100% Objet signifie que tout passe par envoi de messages a des objets (et non pas par "appel de methode" qui n'est resolument pas objet), donc operateurs, visibilite des variables, etc... K.O.
 
 :sweat:

n°454886
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 11-07-2003 à 11:48:35  profilanswer
 

Maintenant, est-ce que le "tout objet" est réellement une fin en soi... je sais pas. J'en suis personnellement pas du tout convaincu.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°454888
noldor
Rockn'roll
Posté le 11-07-2003 à 11:50:00  profilanswer
 

de toute façon, j'ai l'impression qu'on ne peut à la fois avoir un design parfaitement objet, avec une abstraction forte, et de bonnes performances.
Qu'on le veuille ou non, l'un se fait au détriment de l'autre

n°454889
noldor
Rockn'roll
Posté le 11-07-2003 à 11:50:56  profilanswer
 

Kahyman a écrit :


 
Effectivement 100% Objet signifie que tout passe par envoi de messages a des objets (et non pas par "appel de methode" qui n'est resolument pas objet), donc operateurs, visibilite des variables, etc... K.O.
 
 :sweat:  

à ce propos, y aurait un bouquin sur un langage 100% objet, que je vois à quoi ça ressemble

n°454890
kadreg
profil: Utilisateur
Posté le 11-07-2003 à 11:51:06  profilanswer
 

noldor a écrit :

de toute façon, j'ai l'impression qu'on ne peut à la fois avoir un design parfaitement objet, avec une abstraction forte, et de bonnes performances.


 
Au bureau, on a un soft qui a réussi l'exploit d'avoir un design pas objet, n'importe quoi comme abstraction et des performances pourrites :o


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°454895
noldor
Rockn'roll
Posté le 11-07-2003 à 11:52:11  profilanswer
 

kadreg a écrit :


 
Au bureau, on a un soft qui a réussi l'exploit d'avoir un design pas objet, n'importe quoi comme abstraction et des performances pourrites :o

:lol:   :D  

n°454904
krosso
j'suis à la bourre
Posté le 11-07-2003 à 11:55:15  profilanswer
 

El_gringo a écrit :


Si une méthode n'utilise aucun attribut de la classe, il faut la mettre en static. Par contre, conceptuellement parlant, ce cas ne devrait peut être pas se produire !(?)


Je trouve que ça répond plutôt bien à la question que je me posais.
En effet dans le cas qui m'occupe, il y a bien un petit problème de conception (en fait un raccourci pratique).
 
Merci pour ce petit débat !
 
K.

n°454912
darklord
You're welcome
Posté le 11-07-2003 à 11:58:03  profilanswer
 

noldor a écrit :

donc, si on te suite bien Darklord, Java n'est pas 100% OO (voir par exemple java.lang.Math)


 
absolument :jap:


---------------
Just because you feel good does not make you right
n°454915
darklord
You're welcome
Posté le 11-07-2003 à 11:58:19  profilanswer
 

Taiche a écrit :

Maintenant, est-ce que le "tout objet" est réellement une fin en soi... je sais pas. J'en suis personnellement pas du tout convaincu.


 
voilà :jap:


---------------
Just because you feel good does not make you right
n°454923
Kahyman
Posté le 11-07-2003 à 12:00:20  profilanswer
 

noldor a écrit :

à ce propos, y aurait un bouquin sur un langage 100% objet, que je vois à quoi ça ressemble


 
Disons, qu'en POO (note le 1er O pour "orientatiee" et non pas PPO pour "pur" ) on essaie de simplifier la vie aux developpeurs, d'ou l'apparition d'operateurs, etc...
 
Question POO, Smalltalk est bien plus propre que Java.
 
Essaie de trouver des presentations, articles de Stephane Ducasse a ce sujet (il bosse sur le refactoring, les DP, etc... bref sur les architecture Objet).

n°454973
lorill
Posté le 11-07-2003 à 12:38:50  profilanswer
 

Kahyman a écrit :


Effectivement 100% Objet signifie que tout passe par envoi de messages a des objets (et non pas par "appel de methode" qui n'est resolument pas objet)


ca c'est ecrit nulle part :o
(si je me trompe, url valable siouplait)
 

Kahyman a écrit :


donc operateurs, visibilite des variables, etc... K.O.


aucun rapport, cf ruby, www.ruby-lang.org :
- les operateurs sont des methodes comme les autres (donc des messages, ici)
- la visibilité : toutes les variables sont privées, on passe obligatoirement par accesseurs (mais y'a des raccourcis pour les accesseurs, donc ca y ressemble). On pourrait aussi considérer la visibilité comme un attribut de la variable (c'est le cas dans mon prototype de langage), donc aucun probleme.
 
bref, n'importe quoi :o

n°455589
Kahyman
Posté le 11-07-2003 à 17:27:21  profilanswer
 

lorill a écrit :


ca c'est ecrit nulle part :o
(si je me trompe, url valable siouplait)
 
 
aucun rapport, cf ruby, www.ruby-lang.org :
- les operateurs sont des methodes comme les autres (donc des messages, ici)
- la visibilité : toutes les variables sont privées, on passe obligatoirement par accesseurs (mais y'a des raccourcis pour les accesseurs, donc ca y ressemble). On pourrait aussi considérer la visibilité comme un attribut de la variable (c'est le cas dans mon prototype de langage), donc aucun probleme.
 
bref, n'importe quoi :o


 
Tsss...
 
Un appel de methode est un abus de langage (celui que l'on parle) que l'on devrait banir. En objet tu envois des messages d'un objet a l'autre en utilisant une interface comprennant ces messages. C'est tout ce que je voulais dire (demande a des gens qui bossent dans la recherche objet quel est leur avis concernant les "appels de methode" ).
 
Si tu as une methode qui represente un operateur tu n'as plus vraiment d'operateur... tu envois un message indiquant par exemple que tu desire additionner deux objets. Le "+" peut etre alors uniquement un ajout au langage permettant d'eviter de faire explicitement ces envois de message (a+b est plus aise et plus intuitif a faire que a.plus(b))
 
Les variables devraient etre toujours invisibles de l'exterieur et ceci sans exception. Pouvoir leur donner une autre visibilite revient a casser l'encapsulation, ouvrir la voie a l'aliasing non controle, etc... L'acces et modification, pour etre controlee et etre objet devrait donc, comme tu l'indiques, passer par des getter / setters. La encore si tu ajoute des raccourcis langage ce ne sont que des moyens de faciliter l'utilisation et ca ne change rien a ce qui se passe.
 
Tu confonds POO (oriente objet) et ce que j'appellerais PPO (pur objet)... Dans un cas tu profite des notions objet dans l'autre tu vis dans un monde 100% objet ou "+", variables visibles etc ne peuvent exister. Et a ce que je sache la question etait de savoir ce qu'est un langage 100% objet non ?
 
Si tu pense que je racconte n'importe quoi tu es libre de le faire... Je te demande juste de mettre un peu d'eau dans ton vin et d'arreter avec tes " :o " un peu excessifs...
 
Ciao

n°455901
noldor
Rockn'roll
Posté le 12-07-2003 à 08:27:38  profilanswer
 

ça existe des talibans de l'Objet ?


---------------
http://runnerstats.net
n°455922
kadreg
profil: Utilisateur
Posté le 12-07-2003 à 10:47:45  profilanswer
 

noldor a écrit :

ça existe des talibans de l'Objet ?


 
Oh My God [:ddr555]


Message édité par kadreg le 12-07-2003 à 10:48:19

---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°457654
noldor
Rockn'roll
Posté le 14-07-2003 à 23:28:54  profilanswer
 

ok merci  :lol:


---------------
http://runnerstats.net
n°457675
nraynaud
lol
Posté le 14-07-2003 à 23:46:43  profilanswer
 

Kahyman a écrit :


Question POO, Smalltalk est bien plus propre que Java.

Et pourtant, il est loin d'être propre (au niveau des classes surtout).
 
Eiffel me semble l'un des moins crades.
 


---------------
trainoo.com, c'est fini
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
[Méthode développement] Java/Jsp/Struts[Java-Impression] Imprimer une JInternalFrame
[java_debutant]Inserer une image dans une fenetre?[php/mysql] Afficher des champs de db choisi par des checkbox
[java] éxecuter un programme externe[asp] Erreur lors de passage de champs pour une requete
Maitriser le terminal en javaVB.NET A la recherche d'une méthode !
Un bouton qui s'active si deux champs sont remplis 
Plus de sujets relatifs à : [java] Methode et champs static


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