J'ai donc les classes suivantes:Copier objets imbriqués dans Java
class A{
public A(int n1){
n=n1;
}
int n;
}
class B extends A{
public B(int n2){
super(n2);
cnt=1;
}
int cnt;
}
class C extends B{
public C(int n3){
super(n3);
clr="red";
}
String clr;
}
public class Driver {
public static void main(String[] args){
A a,b,c,d,e;
a=new B(200); d=a.copy();
b=new C(100); e=b.copy();
}
}
on me demande de définir la méthode copy()
dans les classes A, B, C. La méthode de copie fait essentiellement une copie de tous les objets imbriqués.
J'ai 2 questions:
Je ne vois pas d'objets imbriqués construits, pourquoi il ne m'a pas demandé de faire une copie de tous les objets imbriqués? Est-ce parce que quand je construis un objet de sous-classe, un objet de classe de base est construit et niche à l'intérieur de l'objet de la sous-classe?
Est-il correct d'écrire la méthode comme suit (prendre la classe B par exemple):
class B extends A{
public B(int n2){
super(n2);
cnt=1;
}
int cnt;
public A copy(){
A copy_ref=new B(1);
((B)copy_ref).cnt=this.cnt;
copy_ref.n=super.n;
return copy_ref;
}
}
Merci pour votre réponse. Je comprends réellement la relation exprimée par l'héritage et la composition. Je suis juste confus par "objets imbriqués". Où diable sont les objets imbriqués dans ce cas ??? Et la méthode copy() fonctionne réellement. Je veux juste m'assurer que c'est ce que la question demande. – pippoflow