Rechercher : dans
Par :

[java] methode clone()

Dernière réponse le 26 mai 2005 à 14:25:35 karine, le 25 mai 2005 à 16:39:00 
 Signaler ce message aux modérateurs

Bonjour,

J'essayes d'utiliser la méhode clone() sur un InputStream et j'ai que des erreurs !

J'ai essayé en écrivant une classe NInputStream, en écrivant une classe qui redéfinit clone, y a rien qui marche.

Est-ce qu'il y aurait quelqu'un d'assez gentil pour m'expliquer cette ****** méthode ? et comment l'utiliser ?

Merci beaucoup !

Meilleures réponses pour « [java] methode clone() » dans :
Le mot-clé static ou les attributs et méthodes de classe en POO Voir(NOTE: Cet article explique la signification du mot-clé static au sein d'une classe. La signification de "static" en C n'a par exemple rien à voir.) Vous êtes débutant en programmation orientée objet. En Java, en C++...ou que sais-je encore,...
Java: Les méthodes VoirLa notion de fonction et de méthode On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instruction par simple appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter dans plusieurs...
Java - Premier programme VoirPremière application avec Java La première chose à faire est de créer un simple fichier texte (sans mise en forme) et de taper les quelques lignes suivantes : // Votre premiere application en Java class FirstApp { public static void main...
Java: les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage Java sont typées, c'est-à-dire que les données contenues dans...

1

jebok, le 25 mai 2005 à 18:48:59

Lorsque tu redéfinis la classe NInputStream il faut écrire :

public class NInputStream extends InputStream implements Cloneable

Ensuite, lorsque tu as un objet in1 de type InputStream, tu fais :

NInputStream in2 = ((NInputStream) in1).clone();

Si ca ne fonctionne pas, essaie cela :

NInputStream in2 = (NInputStream)(((NInputStream) in1).clone());

Bonne chance et tiens moi au courant

Répondre à jebok

2

karine, le 26 mai 2005 à 09:47:03

Bonjour jebok !

J'ai créé la classe NInputStream, mais qu'est-ce que je mets dedans?
J'ai une erreur
Sources/NInputStream.java:4: NInputStream is not abstract and does not override abstract method read() in java.io.InputStream
public class NInputStream extends InputStream implements Cloneable {
^


merci

Répondre à karine

7

 jebok, le 26 mai 2005 à 14:25:35

Rajoute une méthode read() dans la classe NInputStream sans rien mettre à l'intérieur :

public int read() {
}


ou éventuellement :

public int read() {
try{
} catch (IOException e){}
}


Et si vraiment il n'accepte pas, alors déclare ta classe NInputStream en tant que fille non pas de la classe InputStream mais de la classe FileInputStream ou éventuellement de la classe ObjectInputStream.
Ces 2 dernières ne sont pas abstraites donc pas besoin de réécrire la méthode read()

Tiens moi au courant.
Bonne chance

Répondre à jebok

3

mamiemando, le 26 mai 2005 à 11:16:15

D'après ce qu'il dit tu as créé une méhode read. Et tu ne peux pas la remplacer. Trouve lui un autre nom comme "lire". Tu n'aimes pas mettre des noms de fonction en français ?

Répondre à mamiemando

4

karine, le 26 mai 2005 à 11:18:18

Non, au contraire, j'aime bien mettre les noms en français ;-)

J'ai créé aucune méthode read(), dans la classe NInputStream, j'ai rien mis du tout.

Répondre à karine

5

Pool Orion, le 26 mai 2005 à 13:19:41

Salut,

Désolé mais tu ne pourras jamais réaliser un clone d'une class abstraite.

Par définition, le clone est réalisé sur un objet et comme il est impossible d'instantier une class abstraite ...
Pool Orion

Répondre à Pool Orion

6

karine, le 26 mai 2005 à 13:30:51

Merci Pool Orion, je vais essayer autre chose alors.

Répondre à karine