begin process at 2012 02 15 11:19:43
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Java

 > 

Archives

 > 

API

 > 

méthode clone()


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

méthode clone()

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ée 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 problème de méthode clone(); [ par mirosa ] bonjour, j'ai un problème d'utilisation de la méthode clone . je veux travailler sur une copie d'un vecteur d'attribut " res1 " (res c'est la copie o Probleme dans le tri d'un tableau [ par khaled001 ] Bonjour voici mon code: [code=java]package leBonCompte; public class leBonCompte { /** * @param args */ public static void main(String[] arg Problème avec KeyTyped de KeyListener [ par CdB2006 ] Bonjour, j'essaye de faire bouger un rectangle dans un JPanel à l'aide de l'interface KeyListener, j'y arrive tout à fait bien avec la méthode KeyPres [clos] AES [ par mouslisla ] j'ai ma projet de fin d'étude qui consiste à comparer des algorithmes de cryptage à partir de leurs temps d'exécution j'aime voir comment implémenter 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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,515 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales