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

  FORUM HardWare.fr
  Programmation
  Java

  [Java] Création de String

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Java] Création de String

n°750060
antsite
Je me souviens
Posté le 03-06-2004 à 08:19:05  profilanswer
 

  Salut,
Lorsque l'on fait

Code :
  1. String s = str;


aucune string n'est crée en plus de str, on dit juste que s pointe sur la chaine pointée
par str, c'est ça ?
Donc je comprends pas pourquoi ce code compile mais ne mofifie pas la chaine passée en paramètre
 

Code :
  1. public void modifyString(String s)
  2. {
  3. s = s.substring(0, 3); //juste un exemple
  4. }


 
et s n'est pas modifiée (quand je l'affiche après l'appel à modifyString par exemple).
Est-ce une raison de portée de variable (cantonnement à l'environnement local de la fonction) ?
 
merci
   ANT

mood
Publicité
Posté le 03-06-2004 à 08:19:05  profilanswer
 

n°750068
darklord
You're welcome
Posté le 03-06-2004 à 08:31:48  profilanswer
 
n°750179
sircam
I Like Trains
Posté le 03-06-2004 à 09:55:31  profilanswer
 

* soupir * je regrette les bons vieux &...


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°752429
antsite
Je me souviens
Posté le 04-06-2004 à 13:05:39  profilanswer
 

Oui en effet, je savais bien que les String ne sont pas modifiables, mais dans mon exemple, en fait je change juste vers quoi pointe s, c'est pas bon, y a un truc qui m'échappe ?
Donc comme dans le lien que tu m'as filé, je réaffecte un nouvel objet (read-only) à s. Et pourquoi quand je sors de la fonction s pointe toujours sur l'ancien objet ?
merci

n°752437
the real m​oins moins
Posté le 04-06-2004 à 13:12:14  profilanswer
 

http://www.cassioto.blogger.com.br/tanga.jpg
 
 
et accessoirement va lire le topic d'nraynaud sur les string


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°752493
benou
Posté le 04-06-2004 à 14:03:19  profilanswer
 


parce que les paramètres des méthodes sont locaaux aux méthodes ... il ne s'agit pas de la même variable que celle avec laquelle tu as fait l'appel. C'est uen autre variable qui pointe vers le même objet => si tu fais pointer la variable locale à ta méthode vers un autre objet, ca ne change rien pour la variable externe.
 
C'est du au fait qu'en java le passage des paramêtres se fait par copie de valeur (copie de l'adresse mémoire de l'objet pointé, dans le cas d'objet). un peu comme en C ... comme les paramêtres de type IN en ADA, comme les paramêtres qui n'ont pas de '&' en C++ (sauf que là c'est carrément l'objet qui est dupliqué)


Message édité par benou le 04-06-2004 à 14:17:34

---------------
ma vie, mon oeuvre - HomePlayer
n°752497
the real m​oins moins
Posté le 04-06-2004 à 14:06:17  profilanswer
 

euh [:zozo] encore, pour la énième fois, confondage là. ça se passe comme ça uniquement parce que c'est des String.
passe un autre type à ta methode modifyString et il sera toujours "modifié" a la sortie de cette methode

 
 
 [:pepe le putois]


Message édité par the real moins moins le 04-06-2004 à 14:32:03

---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°752499
lorill
Posté le 04-06-2004 à 14:10:10  profilanswer
 

the real moins moins a écrit :

euh [:zozo] encore, pour la énième fois, confondage là. ça se passe comme ça uniquement parce que c'est des String.
passe un autre type à ta methode modifyString et il sera toujours "modifié" a la sortie de cette methode


non, il change juste la variable la

n°752511
benou
Posté le 04-06-2004 à 14:19:13  profilanswer
 

the real moins moins a écrit :

euh [:zozo] encore, pour la énième fois, confondage là. ça se passe comme ça uniquement parce que c'est des String.
passe un autre type à ta methode modifyString et il sera toujours "modifié" a la sortie de cette methode


tu vas pas recommencer !!! :o
 
si tu affecte une autre valeur à la variable (s = "toto" ) ca ne changera JAMAIS rien pour la variable externe.
 
Par contre, bien sur, dans le cas d'objets qui ne sont pas immuables, si tu appelles dessus des méthodes qui changent l'état de l'objet, ca affectera aussi la variable externe puisque c'est l'objet pointé qui est modifié !


---------------
ma vie, mon oeuvre - HomePlayer
n°752531
the real m​oins moins
Posté le 04-06-2004 à 14:31:34  profilanswer
 

ha oui [:psychokwak]
 
et donc si dans ça methode il faisait unObjetNonImmuable = autreInstance en sortie, il se retrouverait quand meme avec l'ancienne instance?
[:psychokwak]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
mood
Publicité
Posté le 04-06-2004 à 14:31:34  profilanswer
 

n°752535
nraynaud
lol
Posté le 04-06-2004 à 14:34:23  profilanswer
 

the real moins moins a écrit :

ha oui [:psychokwak]
 
et donc si dans ça methode il faisait unObjetNonImmuable = autreInstance en sortie, il se retrouverait quand meme avec l'ancienne instance?
[:psychokwak]

alloooooo stackframe, passage de paramètres, tout ça ...


---------------
trainoo.com, c'est fini
n°752621
benou
Posté le 04-06-2004 à 15:04:03  profilanswer
 

the real moins moins a écrit :

il faisait unObjetNonImmuable = autreInstance en sortie, il se retrouverait quand meme avec l'ancienne instance?


oui [:spamafote]


---------------
ma vie, mon oeuvre - HomePlayer
n°752843
lorill
Posté le 04-06-2004 à 16:21:20  profilanswer
 

the real moins moins a écrit :


et donc si dans ça methode il faisait unObjetNonImmuable = autreInstance en sortie, il se retrouverait quand meme avec l'ancienne instance?


mais t'as fumé quoi aujourd'hui toi ?

n°752845
the real m​oins moins
Posté le 04-06-2004 à 16:22:09  profilanswer
 

ça va n'insistez pas [:sisicaivrai]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°752849
nraynaud
lol
Posté le 04-06-2004 à 16:24:26  profilanswer
 

lorill a écrit :

mais t'as fumé quoi aujourd'hui toi ?

http://www.pg.hu/images/logo_always_tampon.gif
 
?


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

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

  [Java] Création de String

 

Sujets relatifs
transfere de fichier en java rmi[java]Ouvrir un fichier dans la fenetre principale
formation pour developpeurs Javacrontab : programme java
Création automatique d'une image miniatureCréation d'un fichier .jar
[JAVA] Aide pour packager un jar[java] copie de fichier et progressbar
Fonction création fichier htmlinstallation java
Plus de sujets relatifs à : [Java] Création de String


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