Méthode clone()

elfourbos Messages postés 66 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 10 août 2007 - 4 oct. 2005 à 00:52
elfourbos Messages postés 66 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 10 août 2007 - 5 oct. 2005 à 23:14
salut à tous programmeurs .......

mon problème se trouve au niveau de la méthode clone. En effet j'ai
créer un package "monPackage" auquel se trouve une interface figure
comprenant deux méthodes (aire() ; perimetre()) et deux classes qui
implements figure ( Triangle et TriangleEquilateral ) et une classe
main() qui instancie ces deux classe et imprime des résultats (genre le
périmètres des triangle instancié)

bref, rien de plus banal jusqu'a la mais je dois redéfinir la méthode
clone pour qu'elle créer une copy d'un triangle par example



Triangle.java

public class Triangle extends Polygone implements Cloneable {

//mon code

protected Object clone()

throws CloneNotSupportedException {

Triangle Tcopy = (Triangle)super.clone();

return Tcopy;

}

et dans mon main.java

public class Main {

public static void main(String[] args) {

Figure t = new Triangle (1,4,3);

Figure tCopy = t.clone();

}

Or t.clone n'est pas reconnu. C'est sans doute normal car je n'est pas
saisie un truc, si vous pouviez m'éclaircir a ce sujet je vous serait
trés reconnaissant, merci a tous
mat.

8 réponses

cid019 Messages postés 237 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 11 juillet 2006
4 oct. 2005 à 11:32
Est-ce que ca ne pourrait pas venir du fait que t soit un Figure et que
ta procedure Clone renvoie un Object? C'est une suggestion, rien de
plus...

cid019
0
kaloway Messages postés 358 Date d'inscription jeudi 24 octobre 2002 Statut Membre Dernière intervention 13 avril 2020
4 oct. 2005 à 12:48
kaloway
0
kaloway Messages postés 358 Date d'inscription jeudi 24 octobre 2002 Statut Membre Dernière intervention 13 avril 2020
4 oct. 2005 à 12:49
ta methode doit etre public
0
elfourbos Messages postés 66 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 10 août 2007
4 oct. 2005 à 13:30
Ma méthode clone renvoie un object en l'occurence du type triangle
(Tcopy) et je l'ai mi protected pour qu'elle soit utilisable par ses
filles à l'extérieur du package. Mais si je la met public et que
clone() renvoie un Triangle le problème persiste non a mon avis il y a
un problème dans l'instantiation dans le main car elle n'est pas
visible lorsque je tape tCopy. dans le main; elle n'est pas présente
dans la liste de méthode offerte.
erreur: the method clone() is undifined for the type figure
mat.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
5 oct. 2005 à 16:55
Figure tCopy =(Figure ) t.clone();
ca devrai mieu marche
"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
0
elfourbos Messages postés 66 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 10 août 2007
5 oct. 2005 à 19:16
ca marche toujours pas pourtant j'ai rajouté "extends Cloneable"
à mon interface Figure mais rien n'y fait ma méthode clone is
undifined for the type figure et si je rajoute la méthode abstraite
dans mon interface Figure il me met problème de redefinition.

voila je suis encore coincé peu etre un peu moins

mat.
0
elfourbos Messages postés 66 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 10 août 2007
5 oct. 2005 à 19:18
si je rajoute la méthode abstraite clone() dans mon interface......

mat.
0
elfourbos Messages postés 66 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 10 août 2007
5 oct. 2005 à 23:14
Merci pour tout g reussi pour ceux que ca interesse (on s'est jamais) voici le code qui compile pour le clonage...



package rmi.td1;

//interface qui precise les méthodes a implanter pour les classes héritières bien étendre cloneable pour ces filles

public interface Figure extends Cloneable {

public double perimetre ();

public double aire ();


---

package rmi.td1;

//classe abstraite qui implemente figure

public abstract class Polygone implements Figure {

int nbCote;



public Polygone () {

this.nbCote = 0;

}

public Polygone (int nbCote) {

this.nbCote = nbCote;

}

public int getNbCote() {

return nbCote;

} }


0
Rejoignez-nous