class A {
static void change(data a, data b)
{
...
if (....) D=new data();
else C = new data();
...
}
static void progy()
{
data A = new data();
data B = new data();
change(A,B);
****** ici ni A ni B sont changé par C ou D pourquoiiiiiiiiiii????? je
croyais que cetait des references d'objet? (lequivalent de pointeur en c++)
*** comment puis je regler le probleme? ***
}
}
merci d'avance
--
*************************
le bureau 3D pour windows
http://www.syndesk3d.fr.st
*************************
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
dark poulpo
desolé ya une erreur ans la description !!!!
il faut lire:
static void change(data a, data b) { ... if (....) a=new data(); else b = new data(); ... }
-- ************************* le bureau 3D pour windows http://www.syndesk3d.fr.st ************************* "dark poulpo" a écrit dans le message news: cd5gij$fue$
bonjour, voila jai un probleme (evidemment)
jai :
class data { ... }
class A { static void change(data a, data b) { ... if (....) D=new data(); else C = new data(); ... }
static void progy() { data A = new data(); data B = new data(); change(A,B); ****** ici ni A ni B sont changé par C ou D pourquoiiiiiiiiiii????? je croyais que cetait des references d'objet? (lequivalent de pointeur en c++)
*** comment puis je regler le probleme? *** } }
merci d'avance -- ************************* le bureau 3D pour windows http://www.syndesk3d.fr.st *************************
desolé ya une erreur ans la description !!!!
il faut lire:
static void change(data a, data b)
{
...
if (....) a=new data();
else b = new data();
...
}
--
*************************
le bureau 3D pour windows
http://www.syndesk3d.fr.st
*************************
"dark poulpo" <syn-ack@wanadoo.fr> a écrit dans le message news:
cd5gij$fue$1@news-reader2.wanadoo.fr...
bonjour, voila jai un probleme (evidemment)
jai :
class data
{
...
}
class A {
static void change(data a, data b)
{
...
if (....) D=new data();
else C = new data();
...
}
static void progy()
{
data A = new data();
data B = new data();
change(A,B);
****** ici ni A ni B sont changé par C ou D pourquoiiiiiiiiiii????? je
croyais que cetait des references d'objet? (lequivalent de pointeur en
c++)
*** comment puis je regler le probleme? ***
}
}
merci d'avance
--
*************************
le bureau 3D pour windows
http://www.syndesk3d.fr.st
*************************
static void change(data a, data b) { ... if (....) a=new data(); else b = new data(); ... }
-- ************************* le bureau 3D pour windows http://www.syndesk3d.fr.st ************************* "dark poulpo" a écrit dans le message news: cd5gij$fue$
bonjour, voila jai un probleme (evidemment)
jai :
class data { ... }
class A { static void change(data a, data b) { ... if (....) D=new data(); else C = new data(); ... }
static void progy() { data A = new data(); data B = new data(); change(A,B); ****** ici ni A ni B sont changé par C ou D pourquoiiiiiiiiiii????? je croyais que cetait des references d'objet? (lequivalent de pointeur en c++)
*** comment puis je regler le probleme? *** } }
merci d'avance -- ************************* le bureau 3D pour windows http://www.syndesk3d.fr.st *************************
dark poulpo
autre chose, je ne risque pas de fuite de memoire de l'ancienne allocation qui a été changé?
-- ************************* le bureau 3D pour windows http://www.syndesk3d.fr.st ************************* "dark poulpo" a écrit dans le message news: cd5gmh$g1l$
desolé ya une erreur ans la description !!!!
il faut lire:
static void change(data a, data b) { ... if (....) a=new data(); else b = new data(); ... }
-- ************************* le bureau 3D pour windows http://www.syndesk3d.fr.st ************************* "dark poulpo" a écrit dans le message news: cd5gij$fue$
bonjour, voila jai un probleme (evidemment)
jai :
class data { ... }
class A { static void change(data a, data b) { ... if (....) D=new data(); else C = new data(); ... }
static void progy() { data A = new data(); data B = new data(); change(A,B); ****** ici ni A ni B sont changé par C ou D pourquoiiiiiiiiiii????? je
croyais que cetait des references d'objet? (lequivalent de pointeur en c++)
*** comment puis je regler le probleme? *** } }
merci d'avance -- ************************* le bureau 3D pour windows http://www.syndesk3d.fr.st *************************
autre chose, je ne risque pas de fuite de memoire de l'ancienne allocation
qui a été changé?
--
*************************
le bureau 3D pour windows
http://www.syndesk3d.fr.st
*************************
"dark poulpo" <syn-ack@wanadoo.fr> a écrit dans le message news:
cd5gmh$g1l$1@news-reader2.wanadoo.fr...
desolé ya une erreur ans la description !!!!
il faut lire:
static void change(data a, data b)
{
...
if (....) a=new data();
else b = new data();
...
}
--
*************************
le bureau 3D pour windows
http://www.syndesk3d.fr.st
*************************
"dark poulpo" <syn-ack@wanadoo.fr> a écrit dans le message news:
cd5gij$fue$1@news-reader2.wanadoo.fr...
bonjour, voila jai un probleme (evidemment)
jai :
class data
{
...
}
class A {
static void change(data a, data b)
{
...
if (....) D=new data();
else C = new data();
...
}
static void progy()
{
data A = new data();
data B = new data();
change(A,B);
****** ici ni A ni B sont changé par C ou D pourquoiiiiiiiiiii?????
je
croyais que cetait des references d'objet? (lequivalent de pointeur en
c++)
*** comment puis je regler le probleme? ***
}
}
merci d'avance
--
*************************
le bureau 3D pour windows
http://www.syndesk3d.fr.st
*************************
autre chose, je ne risque pas de fuite de memoire de l'ancienne allocation qui a été changé?
-- ************************* le bureau 3D pour windows http://www.syndesk3d.fr.st ************************* "dark poulpo" a écrit dans le message news: cd5gmh$g1l$
desolé ya une erreur ans la description !!!!
il faut lire:
static void change(data a, data b) { ... if (....) a=new data(); else b = new data(); ... }
-- ************************* le bureau 3D pour windows http://www.syndesk3d.fr.st ************************* "dark poulpo" a écrit dans le message news: cd5gij$fue$
bonjour, voila jai un probleme (evidemment)
jai :
class data { ... }
class A { static void change(data a, data b) { ... if (....) D=new data(); else C = new data(); ... }
static void progy() { data A = new data(); data B = new data(); change(A,B); ****** ici ni A ni B sont changé par C ou D pourquoiiiiiiiiiii????? je
croyais que cetait des references d'objet? (lequivalent de pointeur en c++)
*** comment puis je regler le probleme? *** } }
merci d'avance -- ************************* le bureau 3D pour windows http://www.syndesk3d.fr.st *************************
Farid
****** ici ni A ni B sont changé par C ou D pourquoiiiiiiiiiii????? je
croyais que cetait des references d'objet? (lequivalent de pointeur en c++)
pour changer le contenu, oui, mais pas le contenant !
*** comment puis je regler le probleme? ***
passer un object (appellons le X) qui contient a et b, et changer les objects a et b contenu dans X. soit via des methodes set...() definie dans X, soit en definisant a et b comme public dans X (enfin a deconseiller, mais bon suivant le cas...)
autre chose, je ne risque pas de fuite de memoire de l'ancienne allocation qui a été changé?
nope, le GC detectera que les anciens objects ne sont references nulle part, et les retira de la ram, quand il "collectera" ...
Farid.
****** ici ni A ni B sont changé par C ou D pourquoiiiiiiiiiii?????
je
croyais que cetait des references d'objet? (lequivalent de pointeur en
c++)
pour changer le contenu, oui, mais pas le contenant !
*** comment puis je regler le probleme? ***
passer un object (appellons le X) qui contient a et b, et changer les
objects a et b contenu dans X.
soit via des methodes set...() definie dans X, soit en definisant a et b
comme public dans X (enfin a deconseiller, mais bon suivant le cas...)
autre chose, je ne risque pas de fuite de memoire de l'ancienne allocation
qui a été changé?
nope, le GC detectera que les anciens objects ne sont references nulle part,
et les retira de la ram, quand il "collectera" ...
****** ici ni A ni B sont changé par C ou D pourquoiiiiiiiiiii????? je
croyais que cetait des references d'objet? (lequivalent de pointeur en c++)
pour changer le contenu, oui, mais pas le contenant !
*** comment puis je regler le probleme? ***
passer un object (appellons le X) qui contient a et b, et changer les objects a et b contenu dans X. soit via des methodes set...() definie dans X, soit en definisant a et b comme public dans X (enfin a deconseiller, mais bon suivant le cas...)
autre chose, je ne risque pas de fuite de memoire de l'ancienne allocation qui a été changé?
nope, le GC detectera que les anciens objects ne sont references nulle part, et les retira de la ram, quand il "collectera" ...
Farid.
Cédric Chabanois
Tu poses beaucoup de questions de débutant ....
Pourquoi ne pas lire quelques docs : - Thinking in Java : pdf gratuit http://java.developpez.com/livres/penserenjava/ - développons en Java de JM doudoux http://perso.wanadoo.fr/jm.doudoux/
Enfin pour répondre à ta question : les paramètres sont passés par valeur, ie la référence vers l'objet est recopiée. Donc quand tu fais a = new data(); => tu crées bien un nouvel objet mais l'appelant ne le verra pas (en fait il va être garbage collecté parceque personne n'a de référence sur lui). Par contre si tu modifies les attributs de a dans change, l'appelant le verra bien sûr.
Enfin je te signale que c'est la même chose en C++ ou en C.
Donc on ne fait pas çà. Et puis là tu travailles comme en C, tu n'as que des méthodes statiques.
Cédric
autre chose, je ne risque pas de fuite de memoire de l'ancienne allocation qui a été changé?
-- ************************* le bureau 3D pour windows http://www.syndesk3d.fr.st ************************* "dark poulpo" a écrit dans le message news: cd5gmh$g1l$
desolé ya une erreur ans la description !!!!
il faut lire:
static void change(data a, data b) { ... if (....) a=new data(); else b = new data(); ... }
-- ************************* le bureau 3D pour windows http://www.syndesk3d.fr.st ************************* "dark poulpo" a écrit dans le message news: cd5gij$fue$
bonjour, voila jai un probleme (evidemment)
jai :
class data { ... }
class A { static void change(data a, data b) { ... if (....) D=new data(); else C = new data(); ... }
static void progy() { data A = new data(); data B = new data(); change(A,B); ****** ici ni A ni B sont changé par C ou D pourquoiiiiiiiiiii?????
je
croyais que cetait des references d'objet? (lequivalent de pointeur en
c++)
*** comment puis je regler le probleme? *** } }
merci d'avance -- ************************* le bureau 3D pour windows http://www.syndesk3d.fr.st *************************
Tu poses beaucoup de questions de débutant ....
Pourquoi ne pas lire quelques docs :
- Thinking in Java : pdf gratuit
http://java.developpez.com/livres/penserenjava/
- développons en Java de JM doudoux
http://perso.wanadoo.fr/jm.doudoux/
Enfin pour répondre à ta question :
les paramètres sont passés par valeur, ie la référence vers l'objet est
recopiée.
Donc quand tu fais a = new data(); => tu crées bien un nouvel objet mais
l'appelant ne le verra pas (en fait il va être garbage collecté
parceque personne n'a de référence sur lui).
Par contre si tu modifies les attributs de a dans change, l'appelant le
verra bien sûr.
Enfin je te signale que c'est la même chose en C++ ou en C.
Donc on ne fait pas çà. Et puis là tu travailles comme en C, tu n'as que
des méthodes statiques.
Cédric
autre chose, je ne risque pas de fuite de memoire de l'ancienne allocation
qui a été changé?
--
*************************
le bureau 3D pour windows
http://www.syndesk3d.fr.st
*************************
"dark poulpo" <syn-ack@wanadoo.fr> a écrit dans le message news:
cd5gmh$g1l$1@news-reader2.wanadoo.fr...
desolé ya une erreur ans la description !!!!
il faut lire:
static void change(data a, data b)
{
...
if (....) a=new data();
else b = new data();
...
}
--
*************************
le bureau 3D pour windows
http://www.syndesk3d.fr.st
*************************
"dark poulpo" <syn-ack@wanadoo.fr> a écrit dans le message news:
cd5gij$fue$1@news-reader2.wanadoo.fr...
bonjour, voila jai un probleme (evidemment)
jai :
class data
{
...
}
class A {
static void change(data a, data b)
{
...
if (....) D=new data();
else C = new data();
...
}
static void progy()
{
data A = new data();
data B = new data();
change(A,B);
****** ici ni A ni B sont changé par C ou D pourquoiiiiiiiiiii?????
je
croyais que cetait des references d'objet? (lequivalent de pointeur en
c++)
*** comment puis je regler le probleme? ***
}
}
merci d'avance
--
*************************
le bureau 3D pour windows
http://www.syndesk3d.fr.st
*************************
Pourquoi ne pas lire quelques docs : - Thinking in Java : pdf gratuit http://java.developpez.com/livres/penserenjava/ - développons en Java de JM doudoux http://perso.wanadoo.fr/jm.doudoux/
Enfin pour répondre à ta question : les paramètres sont passés par valeur, ie la référence vers l'objet est recopiée. Donc quand tu fais a = new data(); => tu crées bien un nouvel objet mais l'appelant ne le verra pas (en fait il va être garbage collecté parceque personne n'a de référence sur lui). Par contre si tu modifies les attributs de a dans change, l'appelant le verra bien sûr.
Enfin je te signale que c'est la même chose en C++ ou en C.
Donc on ne fait pas çà. Et puis là tu travailles comme en C, tu n'as que des méthodes statiques.
Cédric
autre chose, je ne risque pas de fuite de memoire de l'ancienne allocation qui a été changé?
-- ************************* le bureau 3D pour windows http://www.syndesk3d.fr.st ************************* "dark poulpo" a écrit dans le message news: cd5gmh$g1l$
desolé ya une erreur ans la description !!!!
il faut lire:
static void change(data a, data b) { ... if (....) a=new data(); else b = new data(); ... }
-- ************************* le bureau 3D pour windows http://www.syndesk3d.fr.st ************************* "dark poulpo" a écrit dans le message news: cd5gij$fue$
bonjour, voila jai un probleme (evidemment)
jai :
class data { ... }
class A { static void change(data a, data b) { ... if (....) D=new data(); else C = new data(); ... }
static void progy() { data A = new data(); data B = new data(); change(A,B); ****** ici ni A ni B sont changé par C ou D pourquoiiiiiiiiiii?????
je
croyais que cetait des references d'objet? (lequivalent de pointeur en
c++)
*** comment puis je regler le probleme? *** } }
merci d'avance -- ************************* le bureau 3D pour windows http://www.syndesk3d.fr.st *************************
dark poulpo
ayé, jai resolu le probleme, merci encore, jai fais une classe intermediaire qui me sert de pointeur de pointeur;
-- ************************* le bureau 3D pour windows http://www.syndesk3d.fr.st ************************* "dark poulpo" a écrit dans le message news: cd5gij$fue$
bonjour, voila jai un probleme (evidemment)
jai :
class data { ... }
class A { static void change(data a, data b) { ... if (....) D=new data(); else C = new data(); ... }
static void progy() { data A = new data(); data B = new data(); change(A,B); ****** ici ni A ni B sont changé par C ou D pourquoiiiiiiiiiii????? je croyais que cetait des references d'objet? (lequivalent de pointeur en c++)
*** comment puis je regler le probleme? *** } }
merci d'avance -- ************************* le bureau 3D pour windows http://www.syndesk3d.fr.st *************************
ayé, jai resolu le probleme, merci encore, jai fais une classe intermediaire
qui me sert de pointeur de pointeur;
--
*************************
le bureau 3D pour windows
http://www.syndesk3d.fr.st
*************************
"dark poulpo" <syn-ack@wanadoo.fr> a écrit dans le message news:
cd5gij$fue$1@news-reader2.wanadoo.fr...
bonjour, voila jai un probleme (evidemment)
jai :
class data
{
...
}
class A {
static void change(data a, data b)
{
...
if (....) D=new data();
else C = new data();
...
}
static void progy()
{
data A = new data();
data B = new data();
change(A,B);
****** ici ni A ni B sont changé par C ou D pourquoiiiiiiiiiii????? je
croyais que cetait des references d'objet? (lequivalent de pointeur en
c++)
*** comment puis je regler le probleme? ***
}
}
merci d'avance
--
*************************
le bureau 3D pour windows
http://www.syndesk3d.fr.st
*************************
ayé, jai resolu le probleme, merci encore, jai fais une classe intermediaire qui me sert de pointeur de pointeur;
-- ************************* le bureau 3D pour windows http://www.syndesk3d.fr.st ************************* "dark poulpo" a écrit dans le message news: cd5gij$fue$
bonjour, voila jai un probleme (evidemment)
jai :
class data { ... }
class A { static void change(data a, data b) { ... if (....) D=new data(); else C = new data(); ... }
static void progy() { data A = new data(); data B = new data(); change(A,B); ****** ici ni A ni B sont changé par C ou D pourquoiiiiiiiiiii????? je croyais que cetait des references d'objet? (lequivalent de pointeur en c++)
*** comment puis je regler le probleme? *** } }
merci d'avance -- ************************* le bureau 3D pour windows http://www.syndesk3d.fr.st *************************