Profil supprimé | Bonjour
Je souhaiterais vous faire part de deux exemples de codes-sources, l'un pour illustrer la copie superficielle, et l'autre la copie profonde, afin que vous puissiez me dire si j'ai bien compris le principe. Ces deux exemples sont dérivés du livre JAVA de Claude Delanoy. Merci
Exemple de la copie superficielle :
Code :
- public class Point
- {
- // Constructeur
- public Point(int abs, int ord, Zozo var)
- {
- x = abs;
- y = ord;
- // Question subsidiaire :
- // C'est bien comme ça qu'on s'y prend lorsqu'on code le constructeur d'une classe comportant un champ de type Classe ?
- z = var;
- }
- // Méthode de copie superficielle
- public Point copie()
- {
- Point p = new Point(x, y, z); // Seule cette ligne est nécessaire selon moi
- p.x = x; // Pour moi cette ligne est inutile, pouvez-vous me le confirmer ?
- p.y = y; // Pour moi cette ligne est inutile, pouvez-vous me le confirmer ?
- p.z = z; // Pour moi cette ligne est inutile, pouvez-vous me le confirmer ?
- return p; // On retourne la copie superficielle de type classe Point
- }
- // Champs
- private int x;
- private int y;
- private Zozo z;
- }
|
Exemple de la copie profonde :
Code :
- public class Point
- {
- // Constructeur
- public Point(int abs, int ord, Zozo var)
- {
- x = abs;
- y = ord;
- // Question subsidiaire :
- // C'est bien comme ça qu'on s'y prend lorsqu'on code le constructeur d'une classe comportant un champ de type Classe ?
- z = var;
- }
- // Méthode de copie profonde
- public Point copie()
- {
- Zozo bidule = z;
- Point p = new Point(x, y, bidule);
- return p; // On retourne la copie profonde de type classe Point
- }
- // Champs
- private int x;
- private int y;
- private Zozo z;
- }
|
Message édité par Profil supprimé le 01-09-2008 à 00:22:42
|