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 :

demander à l'utilisateur de remplir les champs d'un objet.


Sujet :

Langage Java

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 42
    Points : 18
    Points
    18
    Par défaut demander à l'utilisateur de remplir les champs d'un objet.
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public void saisir_compte()
    	{
    		Client Client1;
    		Client1=new Client();
    		tTitulaire=Client1.saisirclient();
    		Utilitaire.ecrire("Saisir numéro de compte : ");
    		n_compte=Utilitaire.lireEntier();
    		Utilitaire.ecrire("Entrez le solde : ");
    		/*******RECUPERER LE SOLDE IMPOSSIBLE : COMMENT RECUPERER UN DOUBLE *********/
    	}
    en fait, j'ai un problème sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tTitulaire=Client1.saisirclient();
    l'erreur que me rapporte eclipse est la suivante : "Non concordance de types : impossible de convertir de void en Client"

    tTitulaire est un objet de type Client et Client est déclaré comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    	public class Client {
    		private String nom;
    		private String prenom;
    		private String adresse;
     
    		Client()
    		{
    			nom=new String();
    			prenom=new String();
    			adresse=new String();
    		}
    Et ce que je veux faire à cet endroit est d'apeller la fonction/méthode/procédure (j'ai toujours pas compris la différence) saisirclient() présente dans la classe Client.

    De plus, il y a un soucis à l'endroit du commentaire. Je veux que l'utilisateur saisisse le solde qui est un "double" mais dans "Utilitaire" il n'y a pas de "lireDouble()". Je ne sais pas si vous connaissez "Utilitaire". Sinon que dois je utiliser pour récupérer ce double ???

    Merci beaucoup d'avance.

  2. #2
    Membre éprouvé
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Points : 935
    Points
    935
    Par défaut
    Bonjour,

    ta méthode saisirclient doit resembler à "public void saisirclient()".
    il est donc impossible de faire tTitulaire=Client1.saisirclient();

    il faut que tu change ta methode en quelle chose comme "public Client saisirclient()"

  3. #3
    Membre expérimenté Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Points : 1 544
    Points
    1 544
    Par défaut
    bon j'ai pas tout compris,
    Utilitaire doit etre une libraire (une colleciton de classe et methode) faite par une tierce personne.
    Pour recuperer ton double tu peux le recuperer sous forme de String et le transformer en double par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    try{
    double res = Double.parseDouble( taStringRecuperer );
    } catch( NumberFormatException nfe ){
    System.out.println( nfe );
    }
    si tu veux plus d'info clarifie un peu ton probleme
    "vaste programme"

  4. #4
    Membre à l'essai
    Inscrit en
    Octobre 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 42
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par fnobb
    Bonjour,

    ta méthode saisirclient doit resembler à "public void saisirclient()".
    il est donc impossible de faire tTitulaire=Client1.saisirclient();

    il faut que tu change ta methode en quelle chose comme "public Client saisirclient()"
    si je fais cela, eclipse me renvoi sa : "Cette méthode doit renvoyer un résultat de type Client" Et ma méthode ne renvoi rien. J'avais cru comprendre que le void devait être remplacé par le type de la variable renvoyé s'il y en avait une. Vu ce que tu me conseillais, cela doit être plus compliqué à moins que tu m'ai dis cela parce que tu ne savais pas qu'elle ne renvoyais rien.

    Voici la méthode saisirclient();

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    		public void saisirclient()
    		{
    			Utilitaire.ecrire("");
    			Utilitaire.ecrireLigne("*** Saisie de client ***");
    			Utilitaire.ecrire("Entrez le nom du client : ");
    			nom=Utilitaire.lireChaine();
    			Utilitaire.ecrire("");
    			Utilitaire.ecrire("Entrez le prénom du client : ");
    			prenom=Utilitaire.lireChaine();
    			Utilitaire.ecrire("");
    			Utilitaire.ecrire("Entrez l'adresse du client : ");
    			adresse=Utilitaire.lireChaine();
    		}
    BainE : il n'y a pas plus simple pour récupérer un double ??? A moins que ce soit moi qui ai mal choisi le type de variable. En fait, c'est un solde la variable donc peut être négatif et doit petre à virgule. Y a til un autre type de var à utiliser dans ce cas pour simplifier la récupération par l'utilisateur ???
    Parce que, si mon prof m'a donné sa à faire c'est que, je dois pouvoir le faire avec ce que je sais ... quoique ...

  5. #5
    Membre à l'essai
    Inscrit en
    Octobre 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 42
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par BainE
    si tu veux plus d'info clarifie un peu ton probleme
    que veux tu que j'éclaircisse ???

  6. #6
    Membre éprouvé
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Points : 935
    Points
    935
    Par défaut
    c'est simple si tu veux enregistrer le resultat dans un client il faut renvoyer un client
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    		public Client saisirclient()
    		{
    			Utilitaire.ecrire("");
    			Utilitaire.ecrireLigne("*** Saisie de client ***");
    			Utilitaire.ecrire("Entrez le nom du client : ");
    			nom=Utilitaire.lireChaine();
    			Utilitaire.ecrire("");
    			Utilitaire.ecrire("Entrez le prénom du client : ");
    			prenom=Utilitaire.lireChaine();
    			Utilitaire.ecrire("");
    			Utilitaire.ecrire("Entrez l'adresse du client : ");
    			adresse=Utilitaire.lireChaine();
                            return new Client(nom,prenom,adresse);
    		}

  7. #7
    Membre à l'essai
    Inscrit en
    Octobre 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 42
    Points : 18
    Points
    18
    Par défaut
    alors déjà, "c'est simple" lol pas pour tout le monde

    Donc tu renverrai le new ici mais à quoi me servira le new qui est dans saisir_compte() ??? Il faudrait que j'enlève les deux premières lignes de saisir_compte() ???

    Merci d'avance

    edit : j'ai fais ce que tu m'a dis, j'ai donc modifier le constructeur car il n'aceptait pas les arguments. et mon constructeur est devenu sa :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    		Client(String nom, String prenom, String adresse)
    		{
    			this.nom = nom;
    			this.prenom = prenom;
    			this.adresse = adresse;
    		}
    J'ai pris exemple sur un truc qu'on m'avais filé sur ce forum pour autre chose. Par contre maintenant j'ai des erreurs de partout.

    Aurait il fallu créer un deuxème constructeur (certainement que cela ne porte pas ce nom là) ??, Ce que je veux dire c'est que pour ne pas me retrouver avec des erreurs de partout. Il aurait peut être mieux valu que je laisse mon constructeur comme il était et que je fasse le bout de code ci dessus au dessous sans toucher à mon premier constructeur ?????????

    Je vais en cours, je répondrai ce soir .

    Merci pour vos réponses si rapides

  8. #8
    Membre éprouvé
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Points : 935
    Points
    935
    Par défaut
    autant pour moi j'avais pas tous lu

    si c'est une methode de Client: deux solutions s'offrent à toi :
    la première :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    		public Client saisirclient()
    		{
    			Utilitaire.ecrire("");
    			Utilitaire.ecrireLigne("*** Saisie de client ***");
    			Utilitaire.ecrire("Entrez le nom du client : ");
    			nom=Utilitaire.lireChaine();
    			Utilitaire.ecrire("");
    			Utilitaire.ecrire("Entrez le prénom du client : ");
    			prenom=Utilitaire.lireChaine();
    			Utilitaire.ecrire("");
    			Utilitaire.ecrire("Entrez l'adresse du client : ");
    			adresse=Utilitaire.lireChaine();
                            return this;
    		}
    la deuxième la methode etant appellée depuis la classe client tu n'a pas besoin de faire : tTitulaire=Client1.saisirclient()
    en laissant la méthode saisirclient comme elle été initialement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public void saisir_compte()
    	{
    		tTitulaire=new Client();
    		tTitulaire.saisirclient();
    		Utilitaire.ecrire("Saisir numéro de compte : ");
    		n_compte=Utilitaire.lireEntier();
    		Utilitaire.ecrire("Entrez le solde : ");
    		/*******RECUPERER LE SOLDE IMPOSSIBLE : COMMENT RECUPERER UN DOUBLE *********/
    	}

  9. #9
    Membre à l'essai
    Inscrit en
    Octobre 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 42
    Points : 18
    Points
    18
    Par défaut
    j'ai donc utilisé ta première méthode et cela marche nikel, par contre j'ai une petite question.

    Java a donc stocké le nom, prenom et adresse du client dans tTitulaire présent dans la classe Client.

    Pour récupérer les info maintenant, il me suffit de faire
    tTitulaire.nom tTitulaire.prenom et tTitulaire.adresse en oubliant pas de faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Client Client1;
    		Client1=new Client();
    avant ??? ou est ce que je n'ai même pas besoin de faire le bout de code ???

    merci

    ps : toujours le soucis de double, si quelqu'un a une petite idée...

  10. #10
    Membre éprouvé
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Points : 935
    Points
    935
    Par défaut
    si tu as choisi la première methode (c'est pas la mieux) tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public void saisir_compte()
    	{
    		tTitulaire=new Client().saisirclient();
    		Utilitaire.ecrire("Saisir numéro de compte : ");
    		n_compte=Utilitaire.lireEntier();
    		Utilitaire.ecrire("Entrez le solde : ");
    		/*******RECUPERER LE SOLDE IMPOSSIBLE : COMMENT RECUPERER UN DOUBLE *********/
    	}
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public void saisir_compte()
    	{
    		Client Client1=new Client();
    		tTitulaire=Client1.saisirclient();
    		Utilitaire.ecrire("Saisir numéro de compte : ");
    		n_compte=Utilitaire.lireEntier();
    		Utilitaire.ecrire("Entrez le solde : ");
    		/*******RECUPERER LE SOLDE IMPOSSIBLE : COMMENT RECUPERER UN DOUBLE *********/
    	}

  11. #11
    Membre à l'essai
    Inscrit en
    Octobre 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 42
    Points : 18
    Points
    18
    Par défaut
    sa, j'avais capté, d'ailleurs j'ai fais comme toi dans la deuxième proposition.

    Mais si par exemple je veux :

    afficher le nom du client et que je suis dans la classe Client :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Utilitaire.ecrire("tTitulaire.nom")
    mais si je suis dans la classe Compte, faut il faire cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Client Client1=new Client();
    Utilitaire.ecrire("Client1.tTitulaire.nom");
    et alors là, si je suis dans la classe Banque ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Client Client1=new Client();
    Compte Compte1=new Compte();
    Utilitaire.ecrire("Compte1.Client1.tTitulaire.nom");
    ???

    ps : sa serait pas sa l'héritage ??? parce que l'on voit sa demain ouahou

Discussions similaires

  1. [LibreOffice] Remplir les champs de "données d'utilisateurs" à l'aide d'un script/macro
    Par Monoleet dans le forum OpenOffice & LibreOffice
    Réponses: 8
    Dernier message: 01/12/2014, 15h44
  2. [MySQL] remplir les champs vides
    Par marsya dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 10/09/2006, 16h43
  3. Réponses: 8
    Dernier message: 29/06/2006, 15h37
  4. Comment remplir les champs d'une autre application ?
    Par rico32fr dans le forum C++Builder
    Réponses: 6
    Dernier message: 19/06/2006, 08h54
  5. Probleme de requete pour remplir les champs d'une table
    Par Jim_Nastiq dans le forum Langage SQL
    Réponses: 7
    Dernier message: 06/04/2006, 14h56

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