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 :

Récupérer le nom de l'objet créé


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 112
    Par défaut Récupérer le nom de l'objet créé
    Bonjour tout le monde

    Disposant d'une classe nommée Personne,
    constituée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    	propriétés : matricule, nom, adresse, ....
    	methodes   : afficher(), ....
    la méthode afficher() sert à afficher l'ensemble des propriétés d'une instance.

    je crée quelques instances de cette classe à partir d'une classe principale

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Personne p1 = new Personne(....);
    Personne p1 = new Personne(....);
    ...
    .....
    Ce que je cherche à savoir est la possibilité de manipuler (pour affichage ou affectation ou autre) le nom de d'instance (p1, p2, ...) à l'intérieur de la classe, c'est à dire dans le code source de la classe Personne.

    Autrement dit , la méthode afficher() de la classe Personne peut elle être capable d'afficher les noms d'instances qui seront créées ultérieurement
    c'est à dire à l'exécution de
    p1.afficher(), j'aimerais avoir quelque chos comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	1
    	Pierre
    	Paris
    	....
    	p1  (nom de l'instance)
    p2.afficher()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	
    	2
    	Dupont
    	Lyon
    	...
    	p2  (nom de l'instance)

    J'espère que j'ai été claire

    Merci à tous

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Non : dans ton exemple "p1" ne correspond pas au nom de l'instance, mais au nom de la variable qui représente une référence vers un objet. De plus cette référence n'est pas forcément unique...

    Si tu veux donner un nom à ton objet, donne le lui via ses attributs...


    a++

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 112
    Par défaut
    Merci adiGuba

    tu veux dire que je dois faire figurer une propriété dans mon objet (à la définition de la classe)
    au même titre que (matricule, nom, adresse, ...) et que j'appellerai par exemple "nom",
    si c'est cela que tu me proposes j'en conclus que ma question n'a pas été claire,

    ce que je veux récupérer c'est bien le nom réél de mon objet (puisque tu dis que ce n'est pas le nom de l'instance)

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Personne p1 = new Personne(...);
    Personne p2 = new Personne(...);
    Personne p3 = new Personne(...);
    ......
    à l'éxécution de ce fragment de programme, il y a bien création de 3 objets distincts en mémoire,
    qui sont de même classe mais ne contiennent pas les mêmes données ! Non ?

    comment je peux récupérer les "p1", "p2", "p3", ... un peu plus loin dans le programme
    afin de pouvoir les afficher, les affecter, les passer en paramètres d'une fonction etc.
    ou peut être que c'est impossible ?

    je ne sais pas si quelqu'un voit ce que je veux dire ?

  4. #4
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    "p1", "p2" et "p3" ne sont pas les noms des objets, mais les noms des références...


    Qu'est ce que tu cherches à faire précisément ???

    a++

  5. #5
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut
    Non ce n'est pas possible de récupérer le nom de la variable, il ne faut pas confondre nom de l'instance (via un attribut "nom" par exemple) et nom de la variable référençant l'instance.
    Et que faudrait-il afficher dans le cas suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Personne p1 = new Personne(...);
    Personne p2 = p1;
    ?
    Ce qu'on fait généralement, dans une méthode toString() (ou paramString() dans Java/AWT/Swing) c'est qq chose comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public String toString() {
       return "matricule=" + matricule + ", nom="  + nom + ", adresse=" + adresse;
    }
    Tu pourrais faire plus loin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println("p1=" + p1.toString());
    Par contre, aucune chance par exemple de passer p1 par nom à une méthode.
    Quel est le besoin ?

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 132
    Par défaut
    comment je peux récupérer les "p1", "p2", "p3", ... un peu plus loin dans le programme
    afin de pouvoir les afficher, les affecter, les passer en paramètres d'une fonction etc.
    ou peut être que c'est impossible ?

    je ne sais pas si quelqu'un voit ce que je veux dire ?
    De ce que je comprend :

    Tu crées une classe ClasseUtilisantDesPersonnes par exemple avec une méthode qui prend en paramêtre une instance de ta classe Personne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public void jeFaisUnTrucAvecUnePersonne(Personne p) {
    		if (p.getNom().equals("Dupont")) {
    			p.afficher();
    		}
    	}
    Dans une ta classe principale tu vas pouvoir écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	Personne p1 = new Personne("Dupont", "Jean");
    		Personne p2 = new Personne("Durand", "Pierre");
    		Personne p3 = new Personne("Denis", "Michel");
     
    		ClasseUtilisantDesPersonnes cudp = new ClasseUtilisantDesPersonnes();
     
    		cudp.jeFaisUnTrucAvecUnePersonne(p1);
    		cudp.jeFaisUnTrucAvecUnePersonne(p2);
    		cudp.jeFaisUnTrucAvecUnePersonne(p3);
    Là tu passes bien les références p1, p2, p3 comme arguments d'une méthode.
    Sinon je n'ai pas compris ce que tu cherches à faire...

  7. #7
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 112
    Par défaut
    Merci beaucoup nu_tango pour ta réponse :

    apparemment tu as deviné ce que je n'arrive toujours pas à exprimer,

    ton exemple m'interesse si ce n'est ce petit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (p.getNom().equals("Dupont"))
    qui me pose problème, en effet, hormis le fait qu'il me génére erreur de compilation je ne vois pas à quoi il servirait même s'il était compilé avec succès

    je serais plutot plus interessée par quelque chose comme
    c'est à dire, je vérifie si l'objet passé en paramètre est bien "p1"

    au lieu de chercher à savoir si l'objet passé en paramètre est celui qui contient le nom="Dupont" comme tu m'as l'air de vouloir me l'expliquer dans ton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (p.getNom().equals("Dupont"))
    Alors ! est ce possible ?

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/09/2011, 18h54
  2. [XL-2003] récupérer le nom d'un objet
    Par olhey dans le forum Excel
    Réponses: 1
    Dernier message: 08/07/2009, 07h27
  3. Récupérer le Nom de l'objet Actif
    Par Freiya dans le forum Macros et VBA Excel
    Réponses: 22
    Dernier message: 17/12/2007, 18h36
  4. Réponses: 5
    Dernier message: 10/05/2007, 13h31
  5. [POO] Récupérer le nom d'un objet ?
    Par beastman007 dans le forum Langage
    Réponses: 2
    Dernier message: 13/03/2007, 14h11

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