Notion de réference

Résolu
cs_ryadus Messages postés 64 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 21 octobre 2008 - 30 janv. 2006 à 09:22
cs_ryadus Messages postés 64 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 21 octobre 2008 - 30 janv. 2006 à 14:04
Bonjour;
j'ai une question sur la notion de réference:

Soit une classe A comportant un membre String title, le constructeur A(String t) initialise ce membre avec la chaîne t, vaut-il mieux écrire:

public class A {
private title;
A(String t){
title = t;
...

ou bien

public class A {
private title;
A(String t){
title = new String(t);
...
pouvez m'expliquez la difference entre les deux
Les deux solutions sont elles strictement équivalentes pour la suite de l'exécution du programme ? ??


Merci

5 réponses

cs_ryadus Messages postés 64 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 21 octobre 2008
30 janv. 2006 à 14:04
merci pour vos réponses, entre temps j'avais posé la même question sur un autre forum, et la dernière réponse explique très bien cette notion, je vous mets le lien:

http://www.developpez.net/forums/viewtopic.php?t=449524
3
scaryman Messages postés 492 Date d'inscription vendredi 30 janvier 2004 Statut Membre Dernière intervention 16 mai 2007 12
30 janv. 2006 à 09:59
Salut
Oui c'est équivalent.
Rien de moins ou de plus ne se passe entre les 2 exécutions

Voila
A++
0
scaryman Messages postés 492 Date d'inscription vendredi 30 janvier 2004 Statut Membre Dernière intervention 16 mai 2007 12
30 janv. 2006 à 10:01
Oups j'ai oublié de préciser que tu devras mettre private String title au lieu de ce que tu as mis
0
cs_ryadus Messages postés 64 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 21 octobre 2008
30 janv. 2006 à 10:39
Mais avec : title = t, on afecte la réference à title
par contre avec : title = new string (t) là on crée un nouvel emplacement t ...

je sais qu'il ya quelque chose dans ce genre, je ne pense pas que sa soit la même chose !!!!

merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kaloway Messages postés 358 Date d'inscription jeudi 24 octobre 2002 Statut Membre Dernière intervention 13 avril 2020
30 janv. 2006 à 13:12
la classe string n'est pas le meilleur exemple car la variable de base et la classe enveloppe porte le même nom.
prenons plutôt les entiers pour illustrer; une variable de base se note int et la classe enveloppe integer. les variables int passées en paramétre à une méthode sont passées par valeur alors que les variable objet sont passées par référence. pour un int passé en référence on utilise une classe enveloppe (integer).
0