Personne.java |
package testPackage; public class Personne implements Cloneable{ private String name; /** * @param nom */ public Personne(String nom) { name = nom; } @Override /** * cree une representation sous forme de string de l'objet * personne * @return une chaine de caracteres */ public String toString() { return super.toString()+" -> name = \""+name+"\""; } /** * @param name the name to set */ public void setName(String name) { this.name = name; } /** * redéfinition de la méthode clone de la classe Object. * C'est la solution la plus cohérente : rendre la class Personne elle-même clonable. * Remarquez aussi au passage que nous augmentons la visibilité de la méthode clone * de protected à public, cela * de manière à pouvoir appeler clone depuis la classe Bidule. * @see java.lang.Object#clone() */ @Override public Personne clone() throws CloneNotSupportedException { return (Personne) super.clone(); // on a un seul attribut du type String (objet immuable) super.clone() va donc effectuer un clonage profond } @Override public boolean equals(Object obj) { if(obj instanceof Personne){ Personne anotherPersonne = (Personne) obj; return name.equals(anotherPersonne.getName()); //égalité logique } return false; } /** * @return the name */ public String getName() { return name; } }
Personne.java |