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

Langage Java Discussion :

erreur de part.obj@4554617c


Sujet :

Langage Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 2
    Points : 3
    Points
    3
    Par défaut erreur de part.obj@4554617c
    Bonjour à tous, en général je cherche mais là j'avoue que je sèche et comme je sais que les génies sont sur la toile,
    je souhaite votre aide. j'ai 3 classes la main et deux autres j'utilise la collection hashtable,
    je n'arrive pas à remplir mon tableau hashtable et je n'arrive pas à l'afficher, ça m'affiche une erreur part obj@4554617c.
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    package part;
     
    import java.util.Scanner;
     
    public class Lamain {
     
    	private static Scanner sc;
     
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
     
    		Integer c;
    		String n;
    		String p;
    		double pr;
    		Metier me=new Metier();
     
    		sc = new Scanner(System.in);
    		char o='o';
    		while (o=='o'){
     
     
    			System.out.print("rentrer le code ");
    			c=sc.nextInt();
     
    			System.out.print("rentrer le nom ");
    			n=sc.next();
     
    			System.out.print("rentrer le prenom ");
    			p=sc.next();
     
    			System.out.print("rentrer le prix");
    			pr=sc.nextDouble();
    			obj monobjet = new obj(c, n, p, pr);
     
    			monobjet.afficherObjet();
     
    			Metier.ajouterDansTaleau(c,monobjet);
     
    			Metier.afficherLetableau();
     
    			System.out.print ("veux-tu rajouter un objet ? ");
    			o=sc.next().charAt(0);		}
     
     
     
    	}
     
    }
    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
    27
    28
    29
    30
    31
    32
    package part;
     
    import java.util.Collection;
    import java.util.Enumeration;
    import java.util.Hashtable;
    import java.util.Iterator;
    import java.util.Set;
     
    public class Metier {
     
    	private static  Hashtable<Integer, obj> matab;
     
    	public Metier() {
    		this.matab = new Hashtable();
    	}
     
     
    	 static void ajouterDansTaleau(Object keys, obj values) {
    		matab.put(obj.getCode(), values);
    	}
     
     
    	public static  void afficherLetableau(){
    		Enumeration<obj> e = matab.elements();
    		while(e.hasMoreElements()){
    			System.out.println(e.nextElement());
    		}
     
     
    	}
     
    	}
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    package part;
    public class obj {
     
    	String nom;
    	String prenom;
    	static Integer code;
    	double prix;
     
    	obj(Integer code, String nom, String prenom, double prix){
    		obj.code=code;
    		this.nom=nom;
    		this.prenom=prenom;
    		this.prix=prix;
    	}
     
    	public String getNom() {
    		return nom;
    	}
     
    	public void setNom(String nom) {
    		this.nom = nom;
    	}
     
    	public String getPrenom() {
    		return prenom;
    	}
     
    	public void setPrenom(String prenom) {
    		this.prenom = prenom;
    	}
     
    	public static Integer getCode() {
    		return code;
    	}
     
    	public void setCode(Integer code) {
    		obj.code = code;
    	}
     
    	public double getPrix() {
    		return prix;
    	}
     
    	public void setPrix(double prix) {
    		this.prix = prix;
    	}
     
     
     
    	public void afficherObjet(){
    		System.out.print("vous avez saisie le code : "+getCode()
    				+"\nle nom : "+getNom()+"\n"+"le prenom : "+ getPrenom()+"\nle prix : "+getPrix()+ "\n"  );
     
    	}
     
    }
    Je joins mes classes je vous remercie d'avance pour votre aide
    Fichiers attachés Fichiers attachés

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public static  void afficherLetableau(){
    		Enumeration<obj> e = matab.elements();
    		while(e.hasMoreElements()){
    			System.out.println(e.nextElement());
    		}
     
     
    	}
    La méthode println() appelles implicitement la méthode toString() des objets qu'on lui passe en paramètre pour faire l'affichage. Comme tu n'as pas implémenté de méthode toString() spécifique dans la classe obj (tu as fait à la place la méthode afficherObjet()), ça utilise l'implémentation de la classe Object, ce que tu vois (obj@4554617c).

    Par ailleurs, attention, tu mélanges du static et du non static. Si dans la classe Metier, ça a un effet limité parce que tu n'utilises qu'une seule instance de Metier (istance qui ne sert à rien puisque tout est static), sur la classe obj ça a l'effet problématique que toutes les instances de obj ont le même code !
    Un attribut static est un attribut qui n'est pas lié à une instance particulière, et est en quelque sorte partagé par toutes les instances. Il est donc incohérent de faire un attribut static et de l'initialiser dans le constructeur (comme tu fais dans Metier avec la HashTable).

    Evite par ailleurs d'utiliser Hashtable (et Vector également), c'est une vieille classe obsolète : utilise plutôt une HashMap.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 2
    Points : 3
    Points
    3
    Par défaut erreur de part.obj@4554617c
    Bonsoir,

    Je vous remercie

    effectivement ça marche
    je vous remercie pour le conseil sur les variables static

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 22/07/2008, 14h30
  2. [MySQL] Erreur quelque part dans mon compteur de visites !
    Par MathMan dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 26/06/2007, 04h59
  3. Une erreur qq part.. Seul le fond s'affiche
    Par Chekov dans le forum OpenGL
    Réponses: 7
    Dernier message: 04/01/2007, 19h27
  4. Une erreur venant de nullle part
    Par elaum dans le forum C
    Réponses: 4
    Dernier message: 17/09/2005, 23h02
  5. Réponses: 8
    Dernier message: 18/05/2004, 10h03

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