Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : méthode clone() [ Archives / API ] (elfourbos)

mardi 4 octobre 2005 à 00:52:06 | méthode clone()

elfourbos

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.

mardi 4 octobre 2005 à 11:32:43 | Re : méthode clone()

cid019

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

mardi 4 octobre 2005 à 12:48:28 | Re : méthode clone()
mardi 4 octobre 2005 à 12:49:04 | Re : méthode clone()

kaloway



ta methode doit etre public

mardi 4 octobre 2005 à 13:30:05 | Re : méthode clone()

elfourbos

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.

mercredi 5 octobre 2005 à 16:55:08 | Re : méthode clone()

sheorogath

Membre Club Administrateur CodeS-SourceS

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"

mercredi 5 octobre 2005 à 19:16:06 | Re : méthode clone()

elfourbos

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.

mercredi 5 octobre 2005 à 19:18:16 | Re : méthode clone()

elfourbos

si je rajoute la méthode abstraite clone() dans mon interface......

mat.

mercredi 5 octobre 2005 à 23:14:52 | Re : méthode clone()

elfourbos

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;
} }

--
package rmi.td1;
//classe Triangle a pour constructeur une méthode a trois paramètres
public class Triangle extends Polygone implements Cloneable {
    protected double a, b, c;
     public Triangle (double a, double b, double c) {
        super (3);
        this.a = a;
        this.b = b;
        this.c = c;
    }
    public double perimetre() {
        // TODO Auto-generated method stub
        return a + b + c;
    }
    public double aire() {
        // TODO Auto-generated method stub
        double h = hauteurIssueDeA();
        return 0.5 * a * h;
    }
    protected double hauteurIssueDeA() {
        double c2 = c*c;
        double a2 = a*a;
        double b2 = b*b;
        double h2 = c2 - ((a2 + c2 - b2) / (2*a))
                    * ((a2 + c2 - b2) / (2*a));
        double h = Math.sqrt(h2);
        return h;
    }
//méthode clone redéfini  
public Object clone()
    throws CloneNotSupportedException {
    Triangle Tcopy = (Triangle)super.clone();
    return Tcopy;
    }}

--
package rmi.td1;
//méthode main qui instantie tous ca et surtout la méthode clone
public class Main  {

    public static void main(String[] args)  {
        // TODO Auto-generated method stub
        Figure t = new Triangle (1,4,3);
        Figure t1 = null;
        try {
            t1 = (Figure)((Triangle)t).clone();
        } catch (CloneNotSupportedException e) {
            e.printStackTrace();
        }
        Figure te = new TriangleEquilateral(4);
                   
       
        System.out.println("Aire = " + t.aire());
        System.out.println("Aire = " + te.aire());
       
        System.out.println();
       
        System.out.println("Perimetre = " + t.perimetre());
        System.out.println("Perimetre = " + t1.perimetre());
        System.out.println("Perimetre = " + te.perimetre());
   
        System.out.println();

        System.out.println(t.getClass());
  }}

mat.



Cette discussion est classé dans : méthode, main, clone, triangle, figure


Répondre à ce message

Sujets en rapport avec ce message

[SWING] : JSplitPane faire collapse/expand par une méthode ? [ par littlebeetle ] Bonjour à tous, Voilà une question toute bête je pensais mais qui après pas mal de temps à chercher sur le net atterri sur mon forum favori <IMG alt=" méthode clone() qui foire :/ [ par OliV_25 ] lu a tousj'ai besoin de copier des objets et ce sur plusieurs niveau, j'ai donc voulu utiliser la méthode clone() mais elle marche pas à tous les coup méthode sur java [ par pradahp ] quand j'utilise les méthode sur java est ce qu'il faut que j'utilise au debut de mon code import.... si je veut utiliser certaines méthodes deja fait mémoire et java3d [ par JCDjcd ] Bonjour,je voudrais savoir si c'est possible en Java3D de faire la chose suivante :je crée plein de Shape3D (par exemple des triangles, et les formess la méthode hashcode() [ par limalima ] Bonjour à tous,je suis en train d'étudier les collections, je n'arrive pas bien à comprendre la méthode hashcode(), si quelqu'un peut me donner quelqu telecharger un fichier depuis url : reprise de telechargement ? [ par jmengelle ] Bonjour à tous, voilà, j'ai un peu de temps à perdre et j'essaye de faire un petit utilitaire pour télécharger un fichier depuis une URL. Pas de probl Layout : Supprimer un element [ par Rorix83 ] Bonjour.Voici mon problème : J'ai un FlowLayout qui contient deux JPanel. J'aimerais pouvoir supprimer dynamiquement le dernier à un moment donné.Aprè lire ligne par ligne le contenu d'un JTextArea [ par bilal86 ] Bonjour j'ai quelque questions , comme le titre indiqué, quand j'ai fait la recherche sur internet ils disent que pour récupérer le contenu d'une seul Temps d'execution [ par JaVaCode ] Bonjour tout le monde ,Je suis entrain d'étudier les performances des applications Web J2EE et je voulais faire un petit test.je voulais calculer le t un temps d'attendte dans la méthode sleep d'un thread [ par papillon2000 ] bonsoir a tous, je veux récupérer un temps d'exécution d'une tache1 dans une méthode sleep dd'un thread afin d'attendre que ce temps termine pour décl


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version


HTC G1

Entre 449€ et 449€


Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,406 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.