[java] Vous préfixez vos variables pour en déterminer la portée?

Vous préfixez vos variables pour en déterminer la portée? [java] - Java - Programmation

Marsh Posté le 07-06-2004 à 16:35:42    

Exemple :  
 
Imaginons que vous ayez une variable de classe appelée ListeDeNom.
 
Vous faites :  
 
Convention Java

Code :
  1. public void setListeDeNom(ArrayList listeDeNom) {
  2.     this.listeDeNom = listeDeNom;
  3. }


 
ou
 
(préfixage des paramètres avec _ )

Code :
  1. public void setListeDeNom(ArrayList _listeDeNom) {
  2.     this.listeDeNom = _listeDeNom;
  3. }


 
Dans mon exemple ca a peut d'intéret de pas faire la seconde, mais par ex g une classe où j'ai une liste, une autre liste qui contient l'ensemble des valeurs acceptables, et donc la liste passée en paramètre... et ca fait des listOfXXX partout,c moins lisible
 
Je suis plutot adepte de la première méthode si on se force à préfixer systématiquement avec this la variable de classe, mais on voit souvent des gens coder avec la seconde...je voulais un avis des javateux...


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 07-06-2004 à 16:35:42   

Reply

Marsh Posté le 07-06-2004 à 16:42:11    

oui, biensur, et on mets le type après aussi, en notation Hongroise : _listeDeNomsArrayList.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 07-06-2004 à 16:43:46    

plus serieusement, ce sont dans les conventions de code de ma boite, et je l'ai déjà vu...donc ca se fait...
 
edit : g cru le commentaire d'avant était ironique...en fait non :D


Message édité par Jubijub le 07-06-2004 à 17:45:23

---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 07-06-2004 à 16:45:16    

en général, ce sont les variable membre qui ont leur _ devant.
 
et la notation Hongroise existe aussi.
 
Mais en java, les 2 sont déconseillées par les conventions.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 07-06-2004 à 16:55:34    

La notation Hongroise était utile y'a qq années, mais maintenant n'importe quel éditeur te donnera le type de la variable et sa portée, donc ca ne sert plus a grand chose.


---------------
Light is right
Reply

Marsh Posté le 07-06-2004 à 16:57:01    

Non, pas Emacs.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Aux chiottes emacs.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 07-06-2004 à 18:43:52    

moi j'utilise la convention java, mais sans le this (c'est grave docteur)
 

Code :
  1. public void setListeDeNom(ArrayList listeDeNom) {
  2.         listeDeNom = listeDeNom;
  3.   }

Reply

Marsh Posté le 07-06-2004 à 18:54:00    

JagStang a écrit :

moi j'utilise la convention java, mais sans le this (c'est grave docteur)
 

Code :
  1. public void setListeDeNom(ArrayList listeDeNom) {
  2.         listeDeNom = listeDeNom;
  3.   }




heu ... ca marche pas ca :/ si tu mets pas le this, il prends en priorité le paramètre de la méthode ...
donc là tu réaffecte sa valeur au paramètre ... tu fais rien quoi ...


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 07-06-2004 à 18:55:19    

je sais, c'est pour ça que je demande si c'est grave

Reply

Marsh Posté le 07-06-2004 à 19:04:31    

JagStang a écrit :

je sais, c'est pour ça que je demande si c'est grave

oui, mais comme le compilo te le dit, il faudrait être assez con pour persister.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 07-06-2004 à 19:04:31   

Reply

Marsh Posté le 07-06-2004 à 19:05:41    

nraynaud a écrit :

oui, mais comme le compilo te le dit, il faudrait être assez con pour persister.


 
C'est qu'un mwarning, c'est pas grave :o


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 07-06-2004 à 21:01:16    

this.listeDeNom = listeDeNom;  rullez

Reply

Marsh Posté le 07-06-2004 à 21:04:06    

sur un des projets auxquels je participe ca (truc hongroise) fait parti des conventions de codage
 
edit: personnelement j'utilise pas


Message édité par uriel le 07-06-2004 à 21:04:23

---------------
IVG en france
Reply

Marsh Posté le 07-06-2004 à 21:05:02    

perso je trouve ca logique la notation java standard...mon boss avait pas l'air content qd g dit que je suivais pas sa convention à la con...Il m'a répondu que le top ct de préfixer avec this, mais que personne le faisait...alors g répondu que moi si, en bon petit élève qui suit les conventions de code java...depuis g une dérogation


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 07-06-2004 à 21:08:49    

veryfree a écrit :

this.listeDeNom = listeDeNom;  rullez

this.noms = noms;
 
 
pour moi


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 07-06-2004 à 21:34:10    

nraynaud a écrit :

this.noms = noms;
 
 
pour moi


 
oui enfin j ai fait du copier coller hein [:joce]
 
 

Reply

Marsh Posté le 07-06-2004 à 21:58:01    

nraynaud a écrit :

this.noms = noms;
 
 
pour moi


le fait est que c vraiment une liste, indépendament de l'implémentation en ArrayList que j'ai choisi...en plus ca figure mieux de ce que c'est...en réalité dans mon code ce sont des listes d'API compatible, des listes de formats sonores compatibles, etc...avec toute ce que la sémantique de liste veut dire
 
maintenant faut dire que j'aime aussi les variables longues, je trouve ca univoque, ce qui est pratique en prog...hormis les paramètres que je maintiens le plus court possible...


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 08-06-2004 à 00:18:19    

nraynaud a écrit :

oui, mais comme le compilo te le dit, il faudrait être assez con pour persister.


 :pfff:

Reply

Marsh Posté le 08-06-2004 à 00:20:28    

nraynaud et son tact legendaire [:--jerry--]

Reply

Marsh Posté le 08-06-2004 à 00:24:06    

veryfree a écrit :

nraynaud et son tact legendaire [:--jerry--]

il a persisté ?????


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 08-06-2004 à 00:25:40    

depuis le début je déconne. et toi tu me réponds séchement qu'il faudrait être con pour... 'fin voilà quoi, va prendre un peu l'air

Reply

Marsh Posté le 08-06-2004 à 00:26:09    

Question a 2 balles...
si je fais betement
public void setListeDeNom(ArrayList autreNom) {  
        this.listeDeNom = autreNom;  
  }  
histoire d'eviter tout malentendu,
je passe pour le mec qu'as rien compris a la prog?  :??:
Ca change quoi a part pour la javadoc?


Message édité par Nico5779 le 08-06-2004 à 00:29:28
Reply

Marsh Posté le 08-06-2004 à 00:29:59    

JagStang a écrit :

depuis le début je déconne. et toi tu me réponds séchement qu'il faudrait être con pour... 'fin voilà quoi, va prendre un peu l'air

je vois pas où j'ai été sec ????


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 08-06-2004 à 00:30:15    

non non c'est très bien. mais mettre "autrenom" ou "_nom" ça revient au même

Reply

Marsh Posté le 08-06-2004 à 00:30:50    

nraynaud a écrit :

je vois pas où j'ai été sec ????


on s'est mal compris alors [:calin]

Reply

Marsh Posté le 08-06-2004 à 00:31:45    

Nico5779 a écrit :

Question a 2 balles...
si je fais betement
public void setListeDeNom(ArrayList autreNom) {  
        this.listeDeNom = autreNom;  
  }  
histoire d'eviter tout malentendu,
je passe pour le mec qu'as rien compris a la prog?  :??:
Ca change quoi a part pour la javadoc?

on s'en fout, c'est pas très grave.
 
C'est juste qu'en général, on a trouvé un nom qui va bien pour la variable d'instance et on le garde jusqu'au bout.
 
 
Il y a des cas où on "affine" le nom d'ailleur.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 08-06-2004 à 00:32:35    

ok

Reply

Marsh Posté le 08-06-2004 à 09:55:05    

c clair, g refactoré le nom 4x avant d'etre satisfait (et surtout pour garder un nommage uniforme en fonction de ce que représentent les variables)


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 08-06-2004 à 18:03:19    

Moi je prefixe mes variables membres avec _ comme dans le bouquin du GoF. Je trouve le this trop long et changer le nom de la variable en entree d'un setter ca fait chier quand on a deja trouve un nom parfait. C'est la seul entorse que je fais aux recommandations de Sun.
 

Code :
  1. class Me {
  2.   public void setName(String name) {
  3.      _name = name;
  4.   }
  5.   private String _name;
  6. }

Reply

Marsh Posté le 08-06-2004 à 18:18:10    

moi j'aime bien le this aussi parce que le fait de taper "this." fait de la completion sous eclipse :)


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 08-06-2004 à 18:27:10    

benou a écrit :

moi j'aime bien le this aussi parce que le fait de taper "this." fait de la completion sous eclipse :)


 
oui aussi et en fait je croyais que c'etait obligatoire au niveau de langage  :sweat:


---------------
IVG en france
Reply

Marsh Posté le 08-06-2004 à 18:56:03    

uriel a écrit :

oui aussi et en fait je croyais que c'etait obligatoire au niveau de langage  :sweat:


moi je trouve ca obligatoire au niveau de la lisibilité ;)


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 08-06-2004 à 22:04:34    

c clair que la complétition eclipse fait beaucoup...ca et le formattage avec CTRL+I, ca te sort un code conforme aux conventions java tip top


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 09-06-2004 à 09:55:44    

le préfixage des variables membres avec un underscore, je déteste. Après c'est une question de gout


---------------
http://runnerstats.net
Reply

Marsh Posté le 10-06-2004 à 15:53:58    

noldor a écrit :

le préfixage des variables membres avec un underscore, je déteste. Après c'est une question de gout


Souvent les gens mettent un m devant pour dire membre.
private String mName;
 
Mais moi j'adore le _ je trouve qu'ensuite on differencie bien dans le code les variables membres des autres variables des le premier coup d'oeil. Avec l'histoire du this on voit pas bien je trouve. Une fois que l'on utilise plus le this c'est difficile a voir que la variable est membre. faudrait donc mettre le this systematiquement mais comme c'est pas obligatoire (sauf lorsque l'on assigne la variable membre) on a vite fait de l'oublier.
 
Et pour ce qui est du:
 
public void setListeDeNom(ArrayList autreNom) {
    this.listeDeNom = autreNom;
}
 
Je deteste parceque dans le javadoc tu te retrouves avec ecrit autreNom (donc moins comprehensible) alors que tu as deja un nom parfait pour ta variable membre.

Reply

Marsh Posté le 10-06-2004 à 15:59:42    

je rappelle que ce qui est "systématique" devrait être fait par l'IDE (rajouter le "this.", formater etc.).


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 10-06-2004 à 16:02:25    

on est cencé mettre le type quelque part dans le nom de la variable ?
 
(par exemple en swing : jButtonOk)

Reply

Marsh Posté le 10-06-2004 à 16:11:02    

EpoK a écrit :

on est cencé mettre le type quelque part dans le nom de la variable ?
 
(par exemple en swing : jButtonOk)

jamais


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 10-06-2004 à 17:36:01    

c'est pas non plus interdit ceci dit, si ? :)


---------------
http://runnerstats.net
Reply

Marsh Posté le 10-06-2004 à 17:45:19    

noldor a écrit :

c'est pas non plus interdit ceci dit, si ? :)

http://glenn.sanson.free.fr/killtheshadoks/s8.gif


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed