de C++ vers Java : le mot clé "const"( en C++) - Java - Programmation
Marsh Posté le 30-07-2002 à 18:07:08
ha, ça c'est du bon topic interessant
(peut pas t'aider, désolé:D)
Marsh Posté le 30-07-2002 à 18:13:23
bobuse a écrit a écrit : DarkLording in progress ... |
moi je sens plutot un benou sur ce topic, non?
Marsh Posté le 30-07-2002 à 18:14:30
el_gringo a écrit a écrit :
|
Là, je suis pas trop ! en quoi une variable de retour peut être constante ou pas ?
Marsh Posté le 30-07-2002 à 18:15:03
--greg-- a écrit a écrit : moi je sens plutot un benou sur ce topic, non? |
Non il doit encore avoir de la vaisselle
Marsh Posté le 30-07-2002 à 18:20:11
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
Marsh Posté le 30-07-2002 à 18:20:46
Autre question : l'équivalent de
Code :
|
c'est quoi ?
C'est une question que ça fait longtemps que je me la pose ...
Marsh Posté le 30-07-2002 à 18:21:26
HappyHarry a écrit a écrit : nan il dit qu'elle s'applique a une instance |
Et ben tu passes l'instance en paramètre
de toute manière, c'est crade !
Marsh Posté le 30-07-2002 à 18:21:29
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 :
|
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...
Marsh Posté le 30-07-2002 à 18:22:36
bobuse a écrit a écrit : Autre question : l'équivalent de
c'est quoi ? |
Code :
|
mais sur un int en Java ca n'a aucun intéret
Marsh Posté le 30-07-2002 à 18:24:03
HappyHarry a écrit a écrit :
|
ha bon, on peut déclarer un parametre de methode "final"? euh ça à quel interet?
Marsh Posté le 30-07-2002 à 18:24:45
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
|
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
Marsh Posté le 30-07-2002 à 18:25:41
HappyHarry a écrit a écrit :
|
Ouah c'est vrai on peut faire ça !!
Depuis le temps, j'y avait déjà vagement pensé, mais jamais osé essayer ...
Et ben il est jamais trop tard !
Marsh Posté le 30-07-2002 à 18:25:59
--greg-- a écrit a écrit : ha bon, on peut déclarer un parametre de methode "final"? euh ça à quel interet? |
edit : betise
Marsh Posté le 30-07-2002 à 18:26:27
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?
Marsh Posté le 30-07-2002 à 18:27:17
HappyHarry a écrit a écrit : pour les classes locales principalement |
= inner classes ?
Marsh Posté le 30-07-2002 à 18:28:02
--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.
Marsh Posté le 30-07-2002 à 18:29:57
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à...
Marsh Posté le 30-07-2002 à 18:31:08
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
Marsh Posté le 30-07-2002 à 18:31:37
--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
Marsh Posté le 30-07-2002 à 18:34:10
par contre g toujours pas compris l'intéret de préciser que l'on renvoit une constante ...
Marsh Posté le 30-07-2002 à 18:35:10
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 ...
Marsh Posté le 30-07-2002 à 18:35:55
bobuse a écrit a écrit : Ouais moi non plus ... |
j'mate dans mon bouquin de C++ que je n'ai jamais ouvert, 5 minutes
edit : et ben g po trouvé ...
Marsh Posté le 30-07-2002 à 18:40:27
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 )
Marsh Posté le 30-07-2002 à 18:41:01
--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
Marsh Posté le 30-07-2002 à 18:41:42
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é !
Marsh Posté le 30-07-2002 à 18:45:01
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é
Marsh Posté le 30-07-2002 à 18:46:05
ben pkoi pas faire :
Code :
|
en java
et
Code :
|
en C++
Marsh Posté le 30-07-2002 à 18:50:00
bobuse a écrit a écrit : ben pkoi pas faire :
|
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
Marsh Posté le 30-07-2002 à 18:53:15
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à A demain
Marsh Posté le 30-07-2002 à 18:57:14
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à A demain |
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.
C'est juste pr etre sur qu'il fasse pas de connerie.
Marsh Posté le 30-07-2002 à 21:26:19
--greg-- a écrit a écrit : ha bon, on peut déclarer un parametre de methode "final"? euh ça à quel interet? |
ahah vachement subtil ca
Marsh Posté le 30-07-2002 à 21:27:48
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
Marsh Posté le 30-07-2002 à 23:27:55
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 ...
Marsh Posté le 30-07-2002 à 23:28:58
bobuse a écrit a écrit : Non il doit encore avoir de la vaisselle |
ben non, je bossais cet aprem ...
mai bon, j'ai le tas de vaisselle qui est revenu à son état d'y a deux jours
pas le courage ce soir !
Marsh Posté le 30-07-2002 à 23:29:40
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 !
Marsh Posté le 30-07-2002 à 18:05:15
Alors, en C++, on peut utiliser "const" de différente manières:
ça, en java, ça équivaut à :
ok, ms sur les méthodes, en C++, y a 2 trucs bien pratiques que je vois pas comment retrouver en Java :
ça veut dire que la valeur de retour de la méthode est une constante.
alors qu'en java :
ça n'a pas du tout le même sens, comme vous le savez.
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