Bonjour,
Je ne sais pas si ma question à déjà été posé, mais j'ai un p roblème
quand je crée une instance d'une classe avec les mêmes valeurs
d'attribut qu'une autre déjà existante.
Je m'explique :
j'ai une classe, que j'appellerais MaClasse qui a pour constructeur
quelque chose de ce genre
public class MaClasse implements IntrefaceDeMaClasse, Serializable{
private type attribut1;
private type attribut2;
...
public MaClasse () {
}
public MaClasse ( InterfaceDeMaClasse maVieilleClasse ) {
this.attribut1=maVieilleClasse.getAttribut1();
this.attribut2=maVieilleClasse.getAttribut2();
...
}
}
et lorsque je fais
MaClasse c2 = new MaClasse(c1);
c'est equivalent à
c2Á;
Avez vous une idée de l'endroit où j'ai fait une erreur ?
Je vous remercie d'avance pour les réponse que vous pourrez me donner.
Bonjour,
Je ne sais pas si ma question à déjà été posé, mais j'ai un p roblème
quand je crée une instance d'une classe avec les mêmes valeurs
d'attribut qu'une autre déjà existante.
Je m'explique :
j'ai une classe, que j'appellerais MaClasse qui a pour constructeur
quelque chose de ce genre
public class MaClasse implements IntrefaceDeMaClasse, Serializable{
private type attribut1;
private type attribut2;
...
public MaClasse () {
}
public MaClasse ( InterfaceDeMaClasse maVieilleClasse ) {
this.attribut1=maVieilleClasse.getAttribut1();
this.attribut2=maVieilleClasse.getAttribut2();
...
}
}
et lorsque je fais
MaClasse c2 = new MaClasse(c1);
c'est equivalent à
c2=c1;
Avez vous une idée de l'endroit où j'ai fait une erreur ?
Je vous remercie d'avance pour les réponse que vous pourrez me donner.
Bonjour,
Je ne sais pas si ma question à déjà été posé, mais j'ai un p roblème
quand je crée une instance d'une classe avec les mêmes valeurs
d'attribut qu'une autre déjà existante.
Je m'explique :
j'ai une classe, que j'appellerais MaClasse qui a pour constructeur
quelque chose de ce genre
public class MaClasse implements IntrefaceDeMaClasse, Serializable{
private type attribut1;
private type attribut2;
...
public MaClasse () {
}
public MaClasse ( InterfaceDeMaClasse maVieilleClasse ) {
this.attribut1=maVieilleClasse.getAttribut1();
this.attribut2=maVieilleClasse.getAttribut2();
...
}
}
et lorsque je fais
MaClasse c2 = new MaClasse(c1);
c'est equivalent à
c2Á;
Avez vous une idée de l'endroit où j'ai fait une erreur ?
Je vous remercie d'avance pour les réponse que vous pourrez me donner.
Bonjour,
Je ne sais pas si ma question à déjà été posé, mais j'ai un problème
quand je crée une instance d'une classe avec les mêmes valeurs
d'attribut qu'une autre déjà existante.
Je m'explique :
j'ai une classe, que j'appellerais MaClasse qui a pour constructeur
quelque chose de ce genre
public class MaClasse implements IntrefaceDeMaClasse, Serializable{
private type attribut1;
private type attribut2;
...
public MaClasse () {
}
public MaClasse ( InterfaceDeMaClasse maVieilleClasse ) {
this.attribut1=maVieilleClasse.getAttribut1();
this.attribut2=maVieilleClasse.getAttribut2();
...
}
}
et lorsque je fais
MaClasse c2 = new MaClasse(c1);
c'est equivalent à
c2Á;
Avez vous une idée de l'endroit où j'ai fait une erreur ?
Je vous remercie d'avance pour les réponse que vous pourrez me donner.
Bonjour,
Je ne sais pas si ma question à déjà été posé, mais j'ai un problème
quand je crée une instance d'une classe avec les mêmes valeurs
d'attribut qu'une autre déjà existante.
Je m'explique :
j'ai une classe, que j'appellerais MaClasse qui a pour constructeur
quelque chose de ce genre
public class MaClasse implements IntrefaceDeMaClasse, Serializable{
private type attribut1;
private type attribut2;
...
public MaClasse () {
}
public MaClasse ( InterfaceDeMaClasse maVieilleClasse ) {
this.attribut1=maVieilleClasse.getAttribut1();
this.attribut2=maVieilleClasse.getAttribut2();
...
}
}
et lorsque je fais
MaClasse c2 = new MaClasse(c1);
c'est equivalent à
c2Á;
Avez vous une idée de l'endroit où j'ai fait une erreur ?
Je vous remercie d'avance pour les réponse que vous pourrez me donner.
Bonjour,
Je ne sais pas si ma question à déjà été posé, mais j'ai un problème
quand je crée une instance d'une classe avec les mêmes valeurs
d'attribut qu'une autre déjà existante.
Je m'explique :
j'ai une classe, que j'appellerais MaClasse qui a pour constructeur
quelque chose de ce genre
public class MaClasse implements IntrefaceDeMaClasse, Serializable{
private type attribut1;
private type attribut2;
...
public MaClasse () {
}
public MaClasse ( InterfaceDeMaClasse maVieilleClasse ) {
this.attribut1=maVieilleClasse.getAttribut1();
this.attribut2=maVieilleClasse.getAttribut2();
...
}
}
et lorsque je fais
MaClasse c2 = new MaClasse(c1);
c'est equivalent à
c2Á;
Avez vous une idée de l'endroit où j'ai fait une erreur ?
Je vous remercie d'avance pour les réponse que vous pourrez me donner.
On 16 fév, 15:52, disease wrote:
> Bonjour,
> Je ne sais pas si ma question à déjà été posé, mais j'ai un problème
> quand je crée une instance d'une classe avec les mêmes valeurs
> d'attribut qu'une autre déjà existante.
> Je m'explique :
> j'ai une classe, que j'appellerais MaClasse qui a pour constructeur
> quelque chose de ce genre
> public class MaClasse implements IntrefaceDeMaClasse, Serializable{
> private type attribut1;
> private type attribut2;
> ...
> public MaClasse () {
> }
> public MaClasse ( InterfaceDeMaClasse maVieilleClasse ) {
> this.attribut1=maVieilleClasse.getAttribut1();
> this.attribut2=maVieilleClasse.getAttribut2();
> ...
> }
> }
> et lorsque je fais
> MaClasse c2 = new MaClasse(c1);
> c'est equivalent à
> c2Á;
> Avez vous une idée de l'endroit où j'ai fait une erreur ?
> Je vous remercie d'avance pour les réponse que vous pourrez me donner .
En objet on utilise pas de "=" mais la fonction de l'object Object
equals(value Object);
Là t'auras une vraie comparaison d'objets.
On 16 fév, 15:52, disease <lord.dise...@gmail.com> wrote:
> Bonjour,
> Je ne sais pas si ma question à déjà été posé, mais j'ai un problème
> quand je crée une instance d'une classe avec les mêmes valeurs
> d'attribut qu'une autre déjà existante.
> Je m'explique :
> j'ai une classe, que j'appellerais MaClasse qui a pour constructeur
> quelque chose de ce genre
> public class MaClasse implements IntrefaceDeMaClasse, Serializable{
> private type attribut1;
> private type attribut2;
> ...
> public MaClasse () {
> }
> public MaClasse ( InterfaceDeMaClasse maVieilleClasse ) {
> this.attribut1=maVieilleClasse.getAttribut1();
> this.attribut2=maVieilleClasse.getAttribut2();
> ...
> }
> }
> et lorsque je fais
> MaClasse c2 = new MaClasse(c1);
> c'est equivalent à
> c2=c1;
> Avez vous une idée de l'endroit où j'ai fait une erreur ?
> Je vous remercie d'avance pour les réponse que vous pourrez me donner .
En objet on utilise pas de "=" mais la fonction de l'object Object
equals(value Object);
Là t'auras une vraie comparaison d'objets.
On 16 fév, 15:52, disease wrote:
> Bonjour,
> Je ne sais pas si ma question à déjà été posé, mais j'ai un problème
> quand je crée une instance d'une classe avec les mêmes valeurs
> d'attribut qu'une autre déjà existante.
> Je m'explique :
> j'ai une classe, que j'appellerais MaClasse qui a pour constructeur
> quelque chose de ce genre
> public class MaClasse implements IntrefaceDeMaClasse, Serializable{
> private type attribut1;
> private type attribut2;
> ...
> public MaClasse () {
> }
> public MaClasse ( InterfaceDeMaClasse maVieilleClasse ) {
> this.attribut1=maVieilleClasse.getAttribut1();
> this.attribut2=maVieilleClasse.getAttribut2();
> ...
> }
> }
> et lorsque je fais
> MaClasse c2 = new MaClasse(c1);
> c'est equivalent à
> c2Á;
> Avez vous une idée de l'endroit où j'ai fait une erreur ?
> Je vous remercie d'avance pour les réponse que vous pourrez me donner .
En objet on utilise pas de "=" mais la fonction de l'object Object
equals(value Object);
Là t'auras une vraie comparaison d'objets.
disease a écrit :
> Bonjour,
> Je ne sais pas si ma question à déjà été posé, mais j'ai un problème
> quand je crée une instance d'une classe avec les mêmes valeurs
> d'attribut qu'une autre déjà existante.
> Je m'explique :
> j'ai une classe, que j'appellerais MaClasse qui a pour constructeur
> quelque chose de ce genre
> public class MaClasse implements IntrefaceDeMaClasse, Serializable{
> private type attribut1;
> private type attribut2;
> ...
> public MaClasse () {
> }
> public MaClasse ( InterfaceDeMaClasse maVieilleClasse ) {
> this.attribut1=maVieilleClasse.getAttribut1();
> this.attribut2=maVieilleClasse.getAttribut2();
> ...
> }
> }
> et lorsque je fais
> MaClasse c2 = new MaClasse(c1);
> c'est equivalent à
> c2Á;
> Avez vous une idée de l'endroit où j'ai fait une erreur ?
> Je vous remercie d'avance pour les réponse que vous pourrez me donner .
Faudrait pas plutôt faire :
this.attribut1=new type(maVieilleClasse.getAttribut1());
this.attribut2=new type(maVieilleClasse.getAttribut2());
Fred
disease a écrit :
> Bonjour,
> Je ne sais pas si ma question à déjà été posé, mais j'ai un problème
> quand je crée une instance d'une classe avec les mêmes valeurs
> d'attribut qu'une autre déjà existante.
> Je m'explique :
> j'ai une classe, que j'appellerais MaClasse qui a pour constructeur
> quelque chose de ce genre
> public class MaClasse implements IntrefaceDeMaClasse, Serializable{
> private type attribut1;
> private type attribut2;
> ...
> public MaClasse () {
> }
> public MaClasse ( InterfaceDeMaClasse maVieilleClasse ) {
> this.attribut1=maVieilleClasse.getAttribut1();
> this.attribut2=maVieilleClasse.getAttribut2();
> ...
> }
> }
> et lorsque je fais
> MaClasse c2 = new MaClasse(c1);
> c'est equivalent à
> c2=c1;
> Avez vous une idée de l'endroit où j'ai fait une erreur ?
> Je vous remercie d'avance pour les réponse que vous pourrez me donner .
Faudrait pas plutôt faire :
this.attribut1=new type(maVieilleClasse.getAttribut1());
this.attribut2=new type(maVieilleClasse.getAttribut2());
Fred
disease a écrit :
> Bonjour,
> Je ne sais pas si ma question à déjà été posé, mais j'ai un problème
> quand je crée une instance d'une classe avec les mêmes valeurs
> d'attribut qu'une autre déjà existante.
> Je m'explique :
> j'ai une classe, que j'appellerais MaClasse qui a pour constructeur
> quelque chose de ce genre
> public class MaClasse implements IntrefaceDeMaClasse, Serializable{
> private type attribut1;
> private type attribut2;
> ...
> public MaClasse () {
> }
> public MaClasse ( InterfaceDeMaClasse maVieilleClasse ) {
> this.attribut1=maVieilleClasse.getAttribut1();
> this.attribut2=maVieilleClasse.getAttribut2();
> ...
> }
> }
> et lorsque je fais
> MaClasse c2 = new MaClasse(c1);
> c'est equivalent à
> c2Á;
> Avez vous une idée de l'endroit où j'ai fait une erreur ?
> Je vous remercie d'avance pour les réponse que vous pourrez me donner .
Faudrait pas plutôt faire :
this.attribut1=new type(maVieilleClasse.getAttribut1());
this.attribut2=new type(maVieilleClasse.getAttribut2());
Fred
On 16 fév, 16:17, Fred wrote:disease a écrit :Bonjour,
Je ne sais pas si ma question à déjà été posé, mais j'ai un problème
quand je crée une instance d'une classe avec les mêmes valeurs
d'attribut qu'une autre déjà existante.
Je m'explique :
j'ai une classe, que j'appellerais MaClasse qui a pour constructeur
quelque chose de ce genre
public class MaClasse implements IntrefaceDeMaClasse, Serializable{
private type attribut1;
private type attribut2;
...
public MaClasse () {
}
public MaClasse ( InterfaceDeMaClasse maVieilleClasse ) {
this.attribut1=maVieilleClasse.getAttribut1();
this.attribut2=maVieilleClasse.getAttribut2();
...
}
}
et lorsque je fais
MaClasse c2 = new MaClasse(c1);
c'est equivalent à
c2Á;
Avez vous une idée de l'endroit où j'ai fait une erreur ?
Je vous remercie d'avance pour les réponse que vous pourrez me donner.
Faudrait pas plutôt faire :
this.attribut1=new type(maVieilleClasse.getAttribut1());
this.attribut2=new type(maVieilleClasse.getAttribut2());
Fred
Après test, cela ne change malheureusement rien.
plus precisement,
System.out.println(c1);
et
System.out.println(c2);
me revoient la même valeur
(ce n'est probablement pas très propre comme manière de verifier)
On 16 fév, 16:17, Fred <f...@laposte.net> wrote:
disease a écrit :
Bonjour,
Je ne sais pas si ma question à déjà été posé, mais j'ai un problème
quand je crée une instance d'une classe avec les mêmes valeurs
d'attribut qu'une autre déjà existante.
Je m'explique :
j'ai une classe, que j'appellerais MaClasse qui a pour constructeur
quelque chose de ce genre
public class MaClasse implements IntrefaceDeMaClasse, Serializable{
private type attribut1;
private type attribut2;
...
public MaClasse () {
}
public MaClasse ( InterfaceDeMaClasse maVieilleClasse ) {
this.attribut1=maVieilleClasse.getAttribut1();
this.attribut2=maVieilleClasse.getAttribut2();
...
}
}
et lorsque je fais
MaClasse c2 = new MaClasse(c1);
c'est equivalent à
c2Á;
Avez vous une idée de l'endroit où j'ai fait une erreur ?
Je vous remercie d'avance pour les réponse que vous pourrez me donner.
Faudrait pas plutôt faire :
this.attribut1=new type(maVieilleClasse.getAttribut1());
this.attribut2=new type(maVieilleClasse.getAttribut2());
Fred
Après test, cela ne change malheureusement rien.
plus precisement,
System.out.println(c1);
et
System.out.println(c2);
me revoient la même valeur
(ce n'est probablement pas très propre comme manière de verifier)
On 16 fév, 16:17, Fred wrote:disease a écrit :Bonjour,
Je ne sais pas si ma question à déjà été posé, mais j'ai un problème
quand je crée une instance d'une classe avec les mêmes valeurs
d'attribut qu'une autre déjà existante.
Je m'explique :
j'ai une classe, que j'appellerais MaClasse qui a pour constructeur
quelque chose de ce genre
public class MaClasse implements IntrefaceDeMaClasse, Serializable{
private type attribut1;
private type attribut2;
...
public MaClasse () {
}
public MaClasse ( InterfaceDeMaClasse maVieilleClasse ) {
this.attribut1=maVieilleClasse.getAttribut1();
this.attribut2=maVieilleClasse.getAttribut2();
...
}
}
et lorsque je fais
MaClasse c2 = new MaClasse(c1);
c'est equivalent à
c2Á;
Avez vous une idée de l'endroit où j'ai fait une erreur ?
Je vous remercie d'avance pour les réponse que vous pourrez me donner.
Faudrait pas plutôt faire :
this.attribut1=new type(maVieilleClasse.getAttribut1());
this.attribut2=new type(maVieilleClasse.getAttribut2());
Fred
Après test, cela ne change malheureusement rien.
plus precisement,
System.out.println(c1);
et
System.out.println(c2);
me revoient la même valeur
(ce n'est probablement pas très propre comme manière de verifier)
disease a écrit :
> On 16 fév, 16:17, Fred wrote:
>> disease a écrit :
>>> Bonjour,
>>> Je ne sais pas si ma question à déjà été posé, mais j'ai un problème
>>> quand je crée une instance d'une classe avec les mêmes valeurs
>>> d'attribut qu'une autre déjà existante.
>>> Je m'explique :
>>> j'ai une classe, que j'appellerais MaClasse qui a pour constructeur
>>> quelque chose de ce genre
>>> public class MaClasse implements IntrefaceDeMaClasse, Serializable{
>>> private type attribut1;
>>> private type attribut2;
>>> ...
>>> public MaClasse () {
>>> }
>>> public MaClasse ( InterfaceDeMaClasse maVieilleClasse ) {
>>> this.attribut1=maVieilleClasse.getAttribut1();
>>> this.attribut2=maVieilleClasse.getAttribut2();
>>> ...
>>> }
>>> }
>>> et lorsque je fais
>>> MaClasse c2 = new MaClasse(c1);
>>> c'est equivalent à
>>> c2Á;
>>> Avez vous une idée de l'endroit où j'ai fait une erreur ?
>>> Je vous remercie d'avance pour les réponse que vous pourrez me donn er.
>> Faudrait pas plutôt faire :
>> this.attribut1=new type(maVieilleClasse.getAttribut1());
>> this.attribut2=new type(maVieilleClasse.getAttribut2());
>> Fred
> Après test, cela ne change malheureusement rien.
> plus precisement,
> System.out.println(c1);
> et
> System.out.println(c2);
> me revoient la même valeur
> (ce n'est probablement pas très propre comme manière de verifier)
Quand tu dis que ça te provoque une erreur, tu peux être plus clair.
c'est une erreur de compilation? à l'exécution? conceptuelle?
disease a écrit :
> On 16 fév, 16:17, Fred <f...@laposte.net> wrote:
>> disease a écrit :
>>> Bonjour,
>>> Je ne sais pas si ma question à déjà été posé, mais j'ai un problème
>>> quand je crée une instance d'une classe avec les mêmes valeurs
>>> d'attribut qu'une autre déjà existante.
>>> Je m'explique :
>>> j'ai une classe, que j'appellerais MaClasse qui a pour constructeur
>>> quelque chose de ce genre
>>> public class MaClasse implements IntrefaceDeMaClasse, Serializable{
>>> private type attribut1;
>>> private type attribut2;
>>> ...
>>> public MaClasse () {
>>> }
>>> public MaClasse ( InterfaceDeMaClasse maVieilleClasse ) {
>>> this.attribut1=maVieilleClasse.getAttribut1();
>>> this.attribut2=maVieilleClasse.getAttribut2();
>>> ...
>>> }
>>> }
>>> et lorsque je fais
>>> MaClasse c2 = new MaClasse(c1);
>>> c'est equivalent à
>>> c2=c1;
>>> Avez vous une idée de l'endroit où j'ai fait une erreur ?
>>> Je vous remercie d'avance pour les réponse que vous pourrez me donn er.
>> Faudrait pas plutôt faire :
>> this.attribut1=new type(maVieilleClasse.getAttribut1());
>> this.attribut2=new type(maVieilleClasse.getAttribut2());
>> Fred
> Après test, cela ne change malheureusement rien.
> plus precisement,
> System.out.println(c1);
> et
> System.out.println(c2);
> me revoient la même valeur
> (ce n'est probablement pas très propre comme manière de verifier)
Quand tu dis que ça te provoque une erreur, tu peux être plus clair.
c'est une erreur de compilation? à l'exécution? conceptuelle?
disease a écrit :
> On 16 fév, 16:17, Fred wrote:
>> disease a écrit :
>>> Bonjour,
>>> Je ne sais pas si ma question à déjà été posé, mais j'ai un problème
>>> quand je crée une instance d'une classe avec les mêmes valeurs
>>> d'attribut qu'une autre déjà existante.
>>> Je m'explique :
>>> j'ai une classe, que j'appellerais MaClasse qui a pour constructeur
>>> quelque chose de ce genre
>>> public class MaClasse implements IntrefaceDeMaClasse, Serializable{
>>> private type attribut1;
>>> private type attribut2;
>>> ...
>>> public MaClasse () {
>>> }
>>> public MaClasse ( InterfaceDeMaClasse maVieilleClasse ) {
>>> this.attribut1=maVieilleClasse.getAttribut1();
>>> this.attribut2=maVieilleClasse.getAttribut2();
>>> ...
>>> }
>>> }
>>> et lorsque je fais
>>> MaClasse c2 = new MaClasse(c1);
>>> c'est equivalent à
>>> c2Á;
>>> Avez vous une idée de l'endroit où j'ai fait une erreur ?
>>> Je vous remercie d'avance pour les réponse que vous pourrez me donn er.
>> Faudrait pas plutôt faire :
>> this.attribut1=new type(maVieilleClasse.getAttribut1());
>> this.attribut2=new type(maVieilleClasse.getAttribut2());
>> Fred
> Après test, cela ne change malheureusement rien.
> plus precisement,
> System.out.println(c1);
> et
> System.out.println(c2);
> me revoient la même valeur
> (ce n'est probablement pas très propre comme manière de verifier)
Quand tu dis que ça te provoque une erreur, tu peux être plus clair.
c'est une erreur de compilation? à l'exécution? conceptuelle?
public class MaClasse implements IntrefaceDeMaClasse, Serializable{
private type attribut1;
private type attribut2;
...
public MaClasse () {
}
public MaClasse ( InterfaceDeMaClasse maVieilleClasse ) {
this.attribut1=maVieilleClasse.getAttribut1();
this.attribut2=maVieilleClasse.getAttribut2();
...
}
}
et lorsque je fais
MaClasse c2 = new MaClasse(c1);
c'est equivalent à
c2Á;
public class MaClasse implements IntrefaceDeMaClasse, Serializable{
private type attribut1;
private type attribut2;
...
public MaClasse () {
}
public MaClasse ( InterfaceDeMaClasse maVieilleClasse ) {
this.attribut1=maVieilleClasse.getAttribut1();
this.attribut2=maVieilleClasse.getAttribut2();
...
}
}
et lorsque je fais
MaClasse c2 = new MaClasse(c1);
c'est equivalent à
c2Á;
public class MaClasse implements IntrefaceDeMaClasse, Serializable{
private type attribut1;
private type attribut2;
...
public MaClasse () {
}
public MaClasse ( InterfaceDeMaClasse maVieilleClasse ) {
this.attribut1=maVieilleClasse.getAttribut1();
this.attribut2=maVieilleClasse.getAttribut2();
...
}
}
et lorsque je fais
MaClasse c2 = new MaClasse(c1);
c'est equivalent à
c2Á;
disease writes:
> public class MaClasse implements IntrefaceDeMaClasse, Serializable{
> private type attribut1;
> private type attribut2;
> ...
> public MaClasse () {
> }
> public MaClasse ( InterfaceDeMaClasse maVieilleClasse ) {
> this.attribut1=maVieilleClasse.getAttribut1();
> this.attribut2=maVieilleClasse.getAttribut2();
> ...
> }
> }
> et lorsque je fais
> MaClasse c2 = new MaClasse(c1);
> c'est equivalent à
> c2Á;
Non.
Dans le premier cas tu as deux objets distincts (le deuxieme est créé
par new et initialisé avec le constructeur qui apparait plus haut).
Dans le second cas tu as une deuxième variable (c2) qui désigne le
même objet. Les variables c1 et c2 ne sont pas les objets, seulement
des références vers les objets. Avec c2Á tu as deux référence s vers
le même objet. C'est comme cela pour tous les types-classes, mais
évidemment ce n'est pas pareil pour les types primitifs.
Note que dans le premier cas, si type n'est pas un type primitif,
selon la définition de getAttributX(), il se peut très bien que tu
aies deux objets distints, mais dont les attributs respectifs
désignent les mêmes objets (cad, c1.att1=Â.att1, et
c1.att1=Â.att2). Impossible de le savoir avec le code que tu nous
montres.
-- Alain.
disease <lord.dise...@gmail.com> writes:
> public class MaClasse implements IntrefaceDeMaClasse, Serializable{
> private type attribut1;
> private type attribut2;
> ...
> public MaClasse () {
> }
> public MaClasse ( InterfaceDeMaClasse maVieilleClasse ) {
> this.attribut1=maVieilleClasse.getAttribut1();
> this.attribut2=maVieilleClasse.getAttribut2();
> ...
> }
> }
> et lorsque je fais
> MaClasse c2 = new MaClasse(c1);
> c'est equivalent à
> c2=c1;
Non.
Dans le premier cas tu as deux objets distincts (le deuxieme est créé
par new et initialisé avec le constructeur qui apparait plus haut).
Dans le second cas tu as une deuxième variable (c2) qui désigne le
même objet. Les variables c1 et c2 ne sont pas les objets, seulement
des références vers les objets. Avec c2=c1 tu as deux référence s vers
le même objet. C'est comme cela pour tous les types-classes, mais
évidemment ce n'est pas pareil pour les types primitifs.
Note que dans le premier cas, si type n'est pas un type primitif,
selon la définition de getAttributX(), il se peut très bien que tu
aies deux objets distints, mais dont les attributs respectifs
désignent les mêmes objets (cad, c1.att1==c2.att1, et
c1.att1==c2.att2). Impossible de le savoir avec le code que tu nous
montres.
-- Alain.
disease writes:
> public class MaClasse implements IntrefaceDeMaClasse, Serializable{
> private type attribut1;
> private type attribut2;
> ...
> public MaClasse () {
> }
> public MaClasse ( InterfaceDeMaClasse maVieilleClasse ) {
> this.attribut1=maVieilleClasse.getAttribut1();
> this.attribut2=maVieilleClasse.getAttribut2();
> ...
> }
> }
> et lorsque je fais
> MaClasse c2 = new MaClasse(c1);
> c'est equivalent à
> c2Á;
Non.
Dans le premier cas tu as deux objets distincts (le deuxieme est créé
par new et initialisé avec le constructeur qui apparait plus haut).
Dans le second cas tu as une deuxième variable (c2) qui désigne le
même objet. Les variables c1 et c2 ne sont pas les objets, seulement
des références vers les objets. Avec c2Á tu as deux référence s vers
le même objet. C'est comme cela pour tous les types-classes, mais
évidemment ce n'est pas pareil pour les types primitifs.
Note que dans le premier cas, si type n'est pas un type primitif,
selon la définition de getAttributX(), il se peut très bien que tu
aies deux objets distints, mais dont les attributs respectifs
désignent les mêmes objets (cad, c1.att1=Â.att1, et
c1.att1=Â.att2). Impossible de le savoir avec le code que tu nous
montres.
-- Alain.
On 16 fév, 20:42, xael wrote:disease a écrit :On 16 fév, 16:17, Fred wrote:disease a écrit :Bonjour,
Je ne sais pas si ma question à déjà été posé, mais j'ai un problème
quand je crée une instance d'une classe avec les mêmes valeurs
d'attribut qu'une autre déjà existante.
Je m'explique :
j'ai une classe, que j'appellerais MaClasse qui a pour constructeur
quelque chose de ce genre
public class MaClasse implements IntrefaceDeMaClasse, Serializable{
private type attribut1;
private type attribut2;
...
public MaClasse () {
}
public MaClasse ( InterfaceDeMaClasse maVieilleClasse ) {
this.attribut1=maVieilleClasse.getAttribut1();
this.attribut2=maVieilleClasse.getAttribut2();
...
}
}
et lorsque je fais
MaClasse c2 = new MaClasse(c1);
c'est equivalent à
c2Á;
Avez vous une idée de l'endroit où j'ai fait une erreur ?
Je vous remercie d'avance pour les réponse que vous pourrez me donner.
Faudrait pas plutôt faire :
this.attribut1=new type(maVieilleClasse.getAttribut1());
this.attribut2=new type(maVieilleClasse.getAttribut2());
Fred
Après test, cela ne change malheureusement rien.
plus precisement,
System.out.println(c1);
et
System.out.println(c2);
me revoient la même valeur
(ce n'est probablement pas très propre comme manière de verifier)
Quand tu dis que ça te provoque une erreur, tu peux être plus clair.
c'est une erreur de compilation? à l'exécution? conceptuelle?
Et bien, je cherche à avoir 2 objets distinct c1 et c2, et là, c'est
comme si le deuxième objet c2 est un alias de c1. Si après la création
de c2, je modifie un de ses attributs, c1 est aussi modifié. Je ne dis
pas que ça me provoque une erreur, je dis juste que mon code doit être
erroné quelque part.
On 16 fév, 20:42, xael <jah_...@ifrance.com> wrote:
disease a écrit :
On 16 fév, 16:17, Fred <f...@laposte.net> wrote:
disease a écrit :
Bonjour,
Je ne sais pas si ma question à déjà été posé, mais j'ai un problème
quand je crée une instance d'une classe avec les mêmes valeurs
d'attribut qu'une autre déjà existante.
Je m'explique :
j'ai une classe, que j'appellerais MaClasse qui a pour constructeur
quelque chose de ce genre
public class MaClasse implements IntrefaceDeMaClasse, Serializable{
private type attribut1;
private type attribut2;
...
public MaClasse () {
}
public MaClasse ( InterfaceDeMaClasse maVieilleClasse ) {
this.attribut1=maVieilleClasse.getAttribut1();
this.attribut2=maVieilleClasse.getAttribut2();
...
}
}
et lorsque je fais
MaClasse c2 = new MaClasse(c1);
c'est equivalent à
c2Á;
Avez vous une idée de l'endroit où j'ai fait une erreur ?
Je vous remercie d'avance pour les réponse que vous pourrez me donner.
Faudrait pas plutôt faire :
this.attribut1=new type(maVieilleClasse.getAttribut1());
this.attribut2=new type(maVieilleClasse.getAttribut2());
Fred
Après test, cela ne change malheureusement rien.
plus precisement,
System.out.println(c1);
et
System.out.println(c2);
me revoient la même valeur
(ce n'est probablement pas très propre comme manière de verifier)
Quand tu dis que ça te provoque une erreur, tu peux être plus clair.
c'est une erreur de compilation? à l'exécution? conceptuelle?
Et bien, je cherche à avoir 2 objets distinct c1 et c2, et là, c'est
comme si le deuxième objet c2 est un alias de c1. Si après la création
de c2, je modifie un de ses attributs, c1 est aussi modifié. Je ne dis
pas que ça me provoque une erreur, je dis juste que mon code doit être
erroné quelque part.
On 16 fév, 20:42, xael wrote:disease a écrit :On 16 fév, 16:17, Fred wrote:disease a écrit :Bonjour,
Je ne sais pas si ma question à déjà été posé, mais j'ai un problème
quand je crée une instance d'une classe avec les mêmes valeurs
d'attribut qu'une autre déjà existante.
Je m'explique :
j'ai une classe, que j'appellerais MaClasse qui a pour constructeur
quelque chose de ce genre
public class MaClasse implements IntrefaceDeMaClasse, Serializable{
private type attribut1;
private type attribut2;
...
public MaClasse () {
}
public MaClasse ( InterfaceDeMaClasse maVieilleClasse ) {
this.attribut1=maVieilleClasse.getAttribut1();
this.attribut2=maVieilleClasse.getAttribut2();
...
}
}
et lorsque je fais
MaClasse c2 = new MaClasse(c1);
c'est equivalent à
c2Á;
Avez vous une idée de l'endroit où j'ai fait une erreur ?
Je vous remercie d'avance pour les réponse que vous pourrez me donner.
Faudrait pas plutôt faire :
this.attribut1=new type(maVieilleClasse.getAttribut1());
this.attribut2=new type(maVieilleClasse.getAttribut2());
Fred
Après test, cela ne change malheureusement rien.
plus precisement,
System.out.println(c1);
et
System.out.println(c2);
me revoient la même valeur
(ce n'est probablement pas très propre comme manière de verifier)
Quand tu dis que ça te provoque une erreur, tu peux être plus clair.
c'est une erreur de compilation? à l'exécution? conceptuelle?
Et bien, je cherche à avoir 2 objets distinct c1 et c2, et là, c'est
comme si le deuxième objet c2 est un alias de c1. Si après la création
de c2, je modifie un de ses attributs, c1 est aussi modifié. Je ne dis
pas que ça me provoque une erreur, je dis juste que mon code doit être
erroné quelque part.
Fred a raison. Il y a bien deux obgets distincts. Si on fait c1 == c2 on
aura false. Cependant, les attributs de c2 sont des références aux
attributs de c1. Voilà le problème.
disease a écrit :On 16 fév, 20:42, xael wrote:disease a écrit :On 16 fév, 16:17, Fred wrote:disease a écrit :Bonjour,
Je ne sais pas si ma question à déjà été posé, mais j'ai un problème
quand je crée une instance d'une classe avec les mêmes valeurs
d'attribut qu'une autre déjà existante.
Je m'explique :
j'ai une classe, que j'appellerais MaClasse qui a pour constructeur
quelque chose de ce genre
public class MaClasse implements IntrefaceDeMaClasse, Serializable{
private type attribut1;
private type attribut2;
...
public MaClasse () {
}
public MaClasse ( InterfaceDeMaClasse maVieilleClasse ) {
this.attribut1=maVieilleClasse.getAttribut1();
this.attribut2=maVieilleClasse.getAttribut2();
...
}
}
et lorsque je fais
MaClasse c2 = new MaClasse(c1);
c'est equivalent à
c2Á;
Avez vous une idée de l'endroit où j'ai fait une erreur ?
Je vous remercie d'avance pour les réponse que vous pourrez me
donner.
Faudrait pas plutôt faire :
this.attribut1=new type(maVieilleClasse.getAttribut1());
this.attribut2=new type(maVieilleClasse.getAttribut2());
Fred
Après test, cela ne change malheureusement rien.
plus precisement,
System.out.println(c1);
et
System.out.println(c2);
me revoient la même valeur
(ce n'est probablement pas très propre comme manière de verifier)
Quand tu dis que ça te provoque une erreur, tu peux être plus clair.
c'est une erreur de compilation? à l'exécution? conceptuelle?
Et bien, je cherche à avoir 2 objets distinct c1 et c2, et là, c'est
comme si le deuxième objet c2 est un alias de c1. Si après la création
de c2, je modifie un de ses attributs, c1 est aussi modifié. Je ne dis
pas que ça me provoque une erreur, je dis juste que mon code doit être
erroné quelque part.
Fred a raison. Il y a bien deux obgets distincts. Si on fait c1 == c2 on
aura false. Cependant, les attributs de c2 sont des références aux
attributs de c1. Voilà le problème.
disease a écrit :
On 16 fév, 20:42, xael <jah_...@ifrance.com> wrote:
disease a écrit :
On 16 fév, 16:17, Fred <f...@laposte.net> wrote:
disease a écrit :
Bonjour,
Je ne sais pas si ma question à déjà été posé, mais j'ai un problème
quand je crée une instance d'une classe avec les mêmes valeurs
d'attribut qu'une autre déjà existante.
Je m'explique :
j'ai une classe, que j'appellerais MaClasse qui a pour constructeur
quelque chose de ce genre
public class MaClasse implements IntrefaceDeMaClasse, Serializable{
private type attribut1;
private type attribut2;
...
public MaClasse () {
}
public MaClasse ( InterfaceDeMaClasse maVieilleClasse ) {
this.attribut1=maVieilleClasse.getAttribut1();
this.attribut2=maVieilleClasse.getAttribut2();
...
}
}
et lorsque je fais
MaClasse c2 = new MaClasse(c1);
c'est equivalent à
c2Á;
Avez vous une idée de l'endroit où j'ai fait une erreur ?
Je vous remercie d'avance pour les réponse que vous pourrez me
donner.
Faudrait pas plutôt faire :
this.attribut1=new type(maVieilleClasse.getAttribut1());
this.attribut2=new type(maVieilleClasse.getAttribut2());
Fred
Après test, cela ne change malheureusement rien.
plus precisement,
System.out.println(c1);
et
System.out.println(c2);
me revoient la même valeur
(ce n'est probablement pas très propre comme manière de verifier)
Quand tu dis que ça te provoque une erreur, tu peux être plus clair.
c'est une erreur de compilation? à l'exécution? conceptuelle?
Et bien, je cherche à avoir 2 objets distinct c1 et c2, et là, c'est
comme si le deuxième objet c2 est un alias de c1. Si après la création
de c2, je modifie un de ses attributs, c1 est aussi modifié. Je ne dis
pas que ça me provoque une erreur, je dis juste que mon code doit être
erroné quelque part.
Fred a raison. Il y a bien deux obgets distincts. Si on fait c1 == c2 on
aura false. Cependant, les attributs de c2 sont des références aux
attributs de c1. Voilà le problème.
disease a écrit :On 16 fév, 20:42, xael wrote:disease a écrit :On 16 fév, 16:17, Fred wrote:disease a écrit :Bonjour,
Je ne sais pas si ma question à déjà été posé, mais j'ai un problème
quand je crée une instance d'une classe avec les mêmes valeurs
d'attribut qu'une autre déjà existante.
Je m'explique :
j'ai une classe, que j'appellerais MaClasse qui a pour constructeur
quelque chose de ce genre
public class MaClasse implements IntrefaceDeMaClasse, Serializable{
private type attribut1;
private type attribut2;
...
public MaClasse () {
}
public MaClasse ( InterfaceDeMaClasse maVieilleClasse ) {
this.attribut1=maVieilleClasse.getAttribut1();
this.attribut2=maVieilleClasse.getAttribut2();
...
}
}
et lorsque je fais
MaClasse c2 = new MaClasse(c1);
c'est equivalent à
c2Á;
Avez vous une idée de l'endroit où j'ai fait une erreur ?
Je vous remercie d'avance pour les réponse que vous pourrez me
donner.
Faudrait pas plutôt faire :
this.attribut1=new type(maVieilleClasse.getAttribut1());
this.attribut2=new type(maVieilleClasse.getAttribut2());
Fred
Après test, cela ne change malheureusement rien.
plus precisement,
System.out.println(c1);
et
System.out.println(c2);
me revoient la même valeur
(ce n'est probablement pas très propre comme manière de verifier)
Quand tu dis que ça te provoque une erreur, tu peux être plus clair.
c'est une erreur de compilation? à l'exécution? conceptuelle?
Et bien, je cherche à avoir 2 objets distinct c1 et c2, et là, c'est
comme si le deuxième objet c2 est un alias de c1. Si après la création
de c2, je modifie un de ses attributs, c1 est aussi modifié. Je ne dis
pas que ça me provoque une erreur, je dis juste que mon code doit être
erroné quelque part.