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

  FORUM HardWare.fr
  Programmation
  Java

  de C++ vers Java : le mot clé "const"( en C++)

 


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

de C++ vers Java : le mot clé "const"( en C++)

n°186426
El_gringo
Posté le 30-07-2002 à 18:05:15  profilanswer
 

Alors, en C++, on peut utiliser "const" de différente manières:

  • Sur un attribut de classe :
Code :
  1. private const int kMonInt = 0;


ça, en java, ça équivaut à :

Code :
  1. final int kMonInt = 0;


 
ok, ms sur les méthodes, en C++, y a 2 trucs bien pratiques que je vois pas comment retrouver en Java :

  • en C++, ça :

    Code :
    1. const int maMethode () {....corps}

ça veut dire que la valeur de retour de la méthode est une constante.
alors qu'en java :

Code :
  1. final int maMethode () {....corps}


ça n'a pas du tout le même sens, comme vous le savez.
 

  • Et en C++, y a aussi :

    Code :
    1. int maMethode () const {....corps}

qui indique que cette méthode est constante, c à dire, qu'elle ne modifie ^pas la valeur de l'instance à laquelle elle est appliquée...
 
qqn peut me donner l'équivalent de ces 2 trucs en Java ? (s'ils existent bien sur !)


Message édité par El_gringo le 30-07-2002 à 18:06:01
mood
Publicité
Posté le 30-07-2002 à 18:05:15  profilanswer
 

n°186428
--greg--
Posté le 30-07-2002 à 18:07:08  profilanswer
 

ha, ça c'est du bon topic interessant :)
(peut pas t'aider, désolé:D)

n°186431
bobuse
Posté le 30-07-2002 à 18:12:57  profilanswer
 

DarkLording in progress ...  ;)

n°186432
--greg--
Posté le 30-07-2002 à 18:13:23  profilanswer
 

bobuse a écrit a écrit :

DarkLording in progress ...  ;)  



moi je sens plutot un benou sur ce topic, non? :)

n°186433
bobuse
Posté le 30-07-2002 à 18:14:30  profilanswer
 

el_gringo a écrit a écrit :

Code :
  1. const int maMethode () {....corps}


ça veut dire que la valeur de retour de la méthode est une constante.




 
Là, je suis pas trop ! en quoi une variable de retour peut être constante ou pas ?

n°186435
bobuse
Posté le 30-07-2002 à 18:15:03  profilanswer
 

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

moi je sens plutot un benou sur ce topic, non? :)




Non il doit encore avoir de la vaisselle  :D

n°186436
HappyHarry
Posté le 30-07-2002 à 18:16:24  profilanswer
 

j'vois pas non plus ...

n°186439
bobuse
Posté le 30-07-2002 à 18:18:59  profilanswer
 

Pour le dernier tu peux mettre ta méthode en static.

n°186441
HappyHarry
Posté le 30-07-2002 à 18:20:11  profilanswer
 

bobuse a écrit a écrit :

Pour le dernier tu peux mettre ta méthode en static.  




 
nan il dit qu'elle s'applique a une instance

n°186442
bobuse
Posté le 30-07-2002 à 18:20:46  profilanswer
 

Autre question : l'équivalent de  

Code :
  1. methode(const int i)

c'est quoi ?
C'est une question que ça fait longtemps que je me la pose ...

mood
Publicité
Posté le 30-07-2002 à 18:20:46  profilanswer
 

n°186445
bobuse
Posté le 30-07-2002 à 18:21:26  profilanswer
 

HappyHarry a écrit a écrit :

 
 
nan il dit qu'elle s'applique a une instance




Et ben tu passes l'instance en paramètre  :D  
 
de toute manière, c'est crade !

n°186446
gfive
Posté le 30-07-2002 à 18:21:29  profilanswer
 

Bah....En fait, il y a aussi le static qui est vachement important en Java...
Si tu veux tripatouiller une valeur, sans toucher à la valeur de l'attribut d'une instance, il faut déclarer une méthode statique  
 

Code :
  1. static int  maMethode () {
  2. }


 
ce genre de méthode te permet de travailler sur les champs STATIQUES d'une classe (ie, les attributs de classe)  
Les constantes Java sont généralement définies comme static final : ce qui garantit que la valeur sera la même pour toutes les instances de la classe, et qu'elle ne pourra pas être modifiée.
 
Ouala...

n°186448
HappyHarry
Posté le 30-07-2002 à 18:22:36  profilanswer
 

bobuse a écrit a écrit :

Autre question : l'équivalent de  

Code :
  1. methode(const int i)

c'est quoi ?
C'est une question que ça fait longtemps que je me la pose ...
 




 

Code :
  1. methode(final int i)


 
mais sur un int en Java ca n'a aucun intéret


Message édité par HappyHarry le 30-07-2002 à 18:23:31
n°186451
--greg--
Posté le 30-07-2002 à 18:24:03  profilanswer
 

HappyHarry a écrit a écrit :

 
 

Code :
  1. methode(final int i)


 
mais sur un int en Java ca n'a aucun intéret



ha bon, on peut déclarer un parametre de methode "final"? euh ça à quel interet?  

n°186453
HappyHarry
Posté le 30-07-2002 à 18:24:45  profilanswer
 

gfive a écrit a écrit :

Bah....En fait, il y a aussi le static qui est vachement important en Java...
Si tu veux tripatouiller une valeur, sans toucher à la valeur de l'attribut d'une instance, il faut déclarer une méthode statique  
 

Code :
  1. static int  maMethode () {
  2. }


 
ce genre de méthode te permet de travailler sur les champs STATIQUES d'une classe (ie, les attributs de classe)  
Les constantes Java sont généralement définies comme static final : ce qui garantit que la valeur sera la même pour toutes les instances de la classe, et qu'elle ne pourra pas être modifiée.
 
Ouala...  




 
oui mais la on en arrive a la notion de méthode de classe, qui est différente de celle dont il parle, il me semble que son truc, c une methode d'instance, mais qui garantit que l'on ne modifie pas la valeur de l'instance
 
bobuse -> des fois y a pas le choix  :D

n°186455
bobuse
Posté le 30-07-2002 à 18:25:41  profilanswer
 

HappyHarry a écrit a écrit :

 
 

Code :
  1. methode(final int i)


 
mais sur un int en Java ca n'a aucun intéret




Ouah c'est vrai on peut faire ça !!
Depuis le temps, j'y avait déjà vagement pensé, mais jamais osé essayer ...  :D  
 
Et ben il est jamais trop tard !

n°186457
HappyHarry
Posté le 30-07-2002 à 18:25:59  profilanswer
 

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

ha bon, on peut déclarer un parametre de methode "final"? euh ça à quel interet?  
 




 
edit : betise  :D


Message édité par HappyHarry le 30-07-2002 à 18:57:48
n°186459
gfive
Posté le 30-07-2002 à 18:26:27  profilanswer
 

Ouais, mais en Java, tu peux très bien appeller une méthode de classe sur une insatnce, et alors, ça revient à peut près au même....Parce que manipuler un attribut d'instance, en garantissant qu'on va pas le modifier....je vois pas l'intérêt...il suffit d'avoir un accesseur, et de l'utiliser là où on en a besoin pour récupérer la valeur, non?

n°186462
--greg--
Posté le 30-07-2002 à 18:27:17  profilanswer
 

HappyHarry a écrit a écrit :

 
 
pour les classes locales principalement



= inner classes ?

n°186464
bobuse
Posté le 30-07-2002 à 18:28:02  profilanswer
 

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

ha bon, on peut déclarer un parametre de methode "final"? euh ça à quel interet?  
 




 
Ca te garantit que tu ne modifiera pas la valeur, c'est très utile par exemple, quand tu veux une méthode qui utilise des propriétés/méthodes d'un objets, mais que tu ne veux pas du tout le modifier.

n°186467
--greg--
Posté le 30-07-2002 à 18:29:57  profilanswer
 

bobuse a écrit a écrit :

 
 
Ca te garantit que tu ne modifiera pas la valeur, c'est très utile par exemple, quand tu veux une méthode qui utilise des propriétés/méthodes d'un objets, mais que tu ne veux pas du tout le modifier.



est-ce que ça sous entend que ça passe un clone de l'objet à ta methode ou quoi? y'a un truc qui m'échape là...

n°186468
bobuse
Posté le 30-07-2002 à 18:31:08  profilanswer
 

non justement tout l'intérêt est là, c'est que tu ne crée pas de copie, mais ça produit le même effet : t'es sûr d'avoir le même truc avant et après ton appel de méthode

n°186469
HappyHarry
Posté le 30-07-2002 à 18:31:37  profilanswer
 

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

est-ce que ça sous entend que ça passe un clone de l'objet à ta methode ou quoi? y'a un truc qui m'échape là...
 




 
ca sous entend que si tu le declares final et que tu essayes de le modifier, ca te pete a la gueule

n°186475
HappyHarry
Posté le 30-07-2002 à 18:34:10  profilanswer
 

par contre g toujours pas compris l'intéret de préciser que l'on renvoit une constante ...

n°186476
bobuse
Posté le 30-07-2002 à 18:35:10  profilanswer
 

HappyHarry a écrit a écrit :

par contre g toujours pas compris l'intéret de préciser que l'on renvoit une constante ...




Ouais moi non plus ...  :??:

n°186478
bobuse
Posté le 30-07-2002 à 18:35:48  profilanswer
 

D'ailleurs il est passé où el_gringo ? :hello:

n°186479
HappyHarry
Posté le 30-07-2002 à 18:35:55  profilanswer
 

bobuse a écrit a écrit :

 
Ouais moi non plus ...  :??:  




 
j'mate dans mon bouquin de C++ que je n'ai jamais ouvert, 5 minutes  :D
 
edit : et ben g po trouvé ...


Message édité par HappyHarry le 30-07-2002 à 18:39:20
n°186481
--greg--
Posté le 30-07-2002 à 18:40:27  profilanswer
 

bobuse a écrit a écrit :

non justement tout l'intérêt est là, c'est que tu ne crée pas de copie, mais ça produit le même effet : t'es sûr d'avoir le même truc avant et après ton appel de méthode



ouaip
ok
(merci happyharry pour le coté plus parlant ;))

n°186484
HappyHarry
Posté le 30-07-2002 à 18:41:01  profilanswer
 

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

ouaip
ok
(merci happyharry pour le coté plus parlant ;))
 




 
de rien  ;)  
moi aussi j'prefere quand on me parle comme ca, j'saisis plus vite lol

n°186487
bobuse
Posté le 30-07-2002 à 18:41:42  profilanswer
 

http://ltiwww.epfl.ch/Cxx/c2_8.html :
" const int & m (  [...]
 il indique que la référence retournée ne peut pas être modifiée. Cet usage de const n'est valable qu'avec le &. Il n'a pas d'effet si l'on retourne un pointeur (* au lieu de &)."
 
un bout d'explication, mais ça ne me convient pas trop. Je vois toujours pas la réelle utilité !


Message édité par bobuse le 30-07-2002 à 18:43:46
n°186488
zobkiller6​66
Fini les études
Posté le 30-07-2002 à 18:45:01  profilanswer
 

bobuse a écrit a écrit :

http://ltiwww.epfl.ch/Cxx/c2_8.html :
" const int & m (  [...]
 il indique que la référence retournée ne peut pas être modifiée. Cet usage de const n'est valable qu'avec le &. Il n'a pas d'effet si l'on retourne un pointeur (* au lieu de &)."
 
un bout d'explication, mais ça ne me convient pas trop. Je vois toujours pas la réelle utilité !




 
c'est ca l'utilité  :)


---------------
TIME TO KICK SOME ASS !!!
n°186489
bobuse
Posté le 30-07-2002 à 18:46:05  profilanswer
 

ben pkoi pas faire :
 

Code :
  1. final Object result=methodeBidule(...

en java
 
 
et

Code :
  1. const int & result=methodeBidule(...

en C++


Message édité par bobuse le 30-07-2002 à 18:50:38
n°186490
zobkiller6​66
Fini les études
Posté le 30-07-2002 à 18:50:00  profilanswer
 

bobuse a écrit a écrit :

ben pkoi pas faire :
 

Code :
  1. final Object result=methodeBidule(...






 
parcque qu'on peut qd mm modifier directement la ref retournée sans passer par une variable et ca c'est pas cool si le programmeur veut l'interdir


---------------
TIME TO KICK SOME ASS !!!
n°186495
bobuse
Posté le 30-07-2002 à 18:53:15  profilanswer
 

zobkiller666 a écrit a écrit :

 
 
parcque qu'on peut qd mm modifier directement la ref retournée sans passer par une variable et ca c'est pas cool si le programmeur veut l'interdir




 
ok ok ! d'accord ! Mais quel avantage de vouloir interdire qu'on modifie la vriable de retour. Car de toutes façons tu ne t'en resers pas après dans ta méthode  (puisque c'est à cet endroit que ça t'interesse de contrôler tes variables).
 
Heu je sens que je uis plus très clair là  :heink: A demain  :hello:


Message édité par bobuse le 30-07-2002 à 18:54:35
n°186496
zobkiller6​66
Fini les études
Posté le 30-07-2002 à 18:57:14  profilanswer
 

bobuse a écrit a écrit :

 
 
ok ok ! d'accord ! Mais quel avantage de vouloir interdire qu'on modifie la vriable de retour. Car de toutes façons tu ne t'en resers pas après dans ta méthode  (puisque c'est à cet endroit que ça t'interesse de contrôler tes variables).
 
Heu je sens que je uis plus très clair là  :heink: A demain  :hello:  




 
ben en fait ds les langages objets on joue bcp sur la securité !
 
on se met pas que du point de vue du gars qui connait a fond son prog mais aussi du mec qui va le retoucher.
 :hello:  
 
C'est juste pr etre sur qu'il fasse pas de connerie.


---------------
TIME TO KICK SOME ASS !!!
n°186555
darklord
You're welcome
Posté le 30-07-2002 à 21:26:19  profilanswer
 

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

ha bon, on peut déclarer un parametre de methode "final"? euh ça à quel interet?  
 




 
ahah vachement subtil ca :)

n°186556
darklord
You're welcome
Posté le 30-07-2002 à 21:27:48  profilanswer
 

bobuse a écrit a écrit :

DarkLording in progress ...  ;)  




 
nope j'ai mal au cheveu today. J'ai quitté le boulot un peu plus tot puis recherche d'appart donc :)

n°186630
benou
Posté le 30-07-2002 à 23:27:55  profilanswer
 

el_gringo a écrit a écrit :

 
qqn peut me donner l'équivalent de ces 2 trucs en Java ? (s'ils existent bien sur !)




ils n'existent pas, à ma connaissance ...

n°186632
benou
Posté le 30-07-2002 à 23:28:58  profilanswer
 

bobuse a écrit a écrit :

 
Non il doit encore avoir de la vaisselle  :D  




ben non, je bossais cet aprem ...
 
mai bon, j'ai le tas de vaisselle qui est revenu à son état d'y a deux jours :cry:
 
pas le courage  ce soir ! :sweat:

n°186634
benou
Posté le 30-07-2002 à 23:29:40  profilanswer
 

DarkLord a écrit a écrit :

 
 
nope j'ai mal au cheveu today. J'ai quitté le boulot un peu plus tot puis recherche d'appart donc :)




bon courage, j'ai connu ca y a pas longtemps !

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

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

  de C++ vers Java : le mot clé "const"( en C++)

 

Sujets relatifs
generer une page HTML en java[Java] Requete au proxy sans resolution DNS
[C++ Builder] Comment convertir un TColor vers du RGB ?code HTML ou java script
[JAVA] savoir sous quel environnement la VM tourne ?[Java] Erreur que je comprends pas :( plz hlp !!
[Java] Bouton personnalisé[JAVA] Applet qui marchent que sur certaines machines NB inside.
Comment créer un lien ou une redirection vers une page asp...[Java - MacOS X] Jdk 1.4 introuvable !? il existe ?
Plus de sujets relatifs à : de C++ vers Java : le mot clé "const"( en C++)


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