Je sais déjà, ce qu'est une copie superficielle, mais je ne suis pas capable de l'implémenter. Voici un petit exemple.Copie superficielle en Java
public class Shallow {
String name;
int number;
public Shallow (Shallow s) {
this.name = s.name;
this.number = s.number;
}
}
Testez la mise en œuvre ...
public class ShallowTest {
public static void main (String[] args) {
Shallow shallow = new Shallow("Shallow", 123);
Shallow shallowClone = new Shallow(shallow);
shallowClone.name = 'Peter';
shallowClone.number = 321;
System.out.println(shallow.name + " - " + shallow.number);
}
}
Comme je l'ai vue, juste la référence de la chaîne de type de données non primitive serait copié, de sorte qu'en appelant « shallowClone.name = 'Peter'; " Je voudrais aussi changer le nom de "shallow". Ai-je raison? Mais de toute façon, il ne veut tout simplement pas travailler ....
A quoi ressemble le nouveau code du constructeur Shallow (shallow) '? Vous ne l'avez pas inclus dans la question alors que le problème est probablement causé là. Noté devrait également être que les chaînes sont immuables. – BalusC
Juste édité le constructeur. En outre: J'aime vraiment juste copier la référence des objets - c'est le but;) – Vilius