Accueil
 Sommaire du cours
 1  Introduction à Java
 2  Concepts de bases de Java
 3  Classes et objets en Java
 4  Généralisation spécialisation en Java
 5  Organisation des sources Java
 6  API Java
 7  Exceptions en Java
 8  Concepts objets avancés en Java
 8.1  Copie simple/légère
 8.1.1  Copie pour studs
 8.1.2  Représentation graphique d'une copie légère dans studs
 8.1.3  Exemple de copie légère
 8.1.4  Représentation graphique d'une copie plus profonde dans studs
 8.1.5  Copie plus profonde dans studs
 8.1.6  Représentation graphique d'une copie profonde
 8.1.7  Clone de Scrutin
 8.1.8  Clone en copie profonde de Personne
 8.1.9  Suite exemple de copie profonde
 8.2  Retour sur \texttt hashCode()
 8.3  Retour sur les exceptions
 Bibliographie

 Contacts

W3C validator

Département INF  
 Conception et programmation orientées objet


8.1.9 Suite exemple de copie profonde
 
import java.util.ArrayList; 
 
3import studsclone.*; 
public class TestClone { 
    public static void main(final String[] args) 
            throws CloneNotSupportedException { 
7        Personne p = new Personne("Dupont", "Julien"); 
        p.organiserScrutin("Electionbde2010"); 
        Personne p1 = p.clone(); 
        if (p1 == p) { 
11            System.out.println("p==p1"); 
        } 
        if (p.getNom() == p1.getNom()) { 
            System.out.println("petp1noms=="); 
15        } 
        if (p.getPrenom() == p1.getPrenom()) { 
            System.out.println("petp1prenoms=="); 
        } 
19        ArrayList<Scrutin> a1, a2; 
        a1 = p.getScrutins(); 
        a2 = p1.getScrutins(); 
        if (a1 == a2) { 
23            System.out.println("petp1scrutins=="); 
        } else { 
            for(int i = 0; i < a1.size(); i++) { 
                if(a1.get(i) == a2.get(i)) { 
27                    System.out.println("Scrutinsderang" + i +"=="); 
                } else { 
                    if(a1.get(i).getOrganisateur() == a2.get(i).getOrganisateur()) { 
                        System.out.println("Oraganisateurdesscrutinsderang" + i +"=="); 
31                    } 
                } 
            } 
        } 
35    } 
}

Résultat de l’exécution :

    précédent     suivant 


La trace d’exécution, montre maintenant que tout est cloné correctement.

Christian Bac, Denis Conan, Télécom SudParis, CSC 4002, Octobre 2015