IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Classe sérialisée


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 51
    Par défaut Classe sérialisée
    Bonjour, j'ai un exemple
    Si une instance de classe Beagle a été crée, aprés qu'on la sérialise et désérialise...
    le résultat retourné sera : "ada" , moi je dis prkoi pas : "ad" qu'est ce qui s'est passé lors de la sérialisation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    class Animal{
        Animal(){
        	System.out.print("a");}
       }
     
    class Dog extends Animal implements Serializable {
        Dog(){ System.out.print("d");}}
     
    public class Beagle extends Dog{
    	public static void main(String[] args) {
    		new Beagle();
    	}
    }
    MErci .

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    La en l'occurence ton code il ne fait strictement rien du tout.

    C'est juste 3 classes comme ca, et par chance, au mieux en les utilisant telle quelles, tu pourras voir apparaitre dans la console, d ou a... selon ce que tu en fais.

    Bref je ne sais pas ce que tu cherche a faire, mais c'est pas comme ca

    Enfin sinon dans le doute :

    http://ydisanto.developpez.com/tutor...ation-binaire/
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 51
    Par défaut
    j’espère que là c'est plus clair cher ami : )

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    Non je ne vois toujours pas le rapport avec une sérialisation.

    Et ton code fournit comme résultat : "ad" ce qui est le résultat attendu vu que le constructeur de dog appelle celui de animal ( implicitement ), puis le sien. Donc ca doit donner "ad".
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 51
    Par défaut
    c'est une question de certification ocjp6.. moi aussi je comprend pas prkoi "ada" .. voici l'imprime d'écran de la question
    Images attachées Images attachées  

  6. #6
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    Sauf que dans ta question initiale, il y'a aucun main. Donc les comportement tu peux faire ce que tu veux. Mais comme tu as rajouter un main avec un new Beagle(), alors tu obtiens "ad" ce qui est normal comme expliqué plus haut.

    Cela dit, si tu veux obtenir absolument "ada" dans la console, il faut donc au moins sérialisé puis dé-sérialisé ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    public class Beagle extends Dog{
     
    	public static void main(String[] args) throws IOException, ClassNotFoundException {
    		//System.err.println("Instancie un Beagle");
    		Beagle b = new Beagle();
     
    		//System.err.println("Serialise");
     
    		FileOutputStream fos = new FileOutputStream("personne.serial");
     
    		// création d'un "flux objet" avec le flux fichier
    		ObjectOutputStream oos= new ObjectOutputStream(fos);
    		oos.writeObject(b);
    		oos.close();
     
    		//System.err.println("Deserialise");
     
    		FileInputStream fis = new FileInputStream("personne.serial");
     
    		// création d'un "flux objet" avec le flux fichier
    		ObjectInputStream ois= new ObjectInputStream(fis);
    		b = (Beagle) ois.readObject();
    		ois.close();
     
    	}
    }
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Enregistrer une classe sérialisée dans un fichier
    Par Despirithium dans le forum Débuter
    Réponses: 7
    Dernier message: 29/01/2013, 15h34
  2. Réponses: 1
    Dernier message: 14/09/2007, 15h24
  3. débutant XMLEncoder soucis sérialisation classes
    Par superpigeon dans le forum Format d'échange (XML, JSON...)
    Réponses: 8
    Dernier message: 26/10/2006, 14h24
  4. [C#] Comment sérialiser une classe abstraite?
    Par akkaBella dans le forum C#
    Réponses: 1
    Dernier message: 14/09/2006, 16h12
  5. Réponses: 1
    Dernier message: 28/03/2006, 22h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo