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

Java Discussion :

Une ListArray d'une classe.. y'a un truc qui m'échappe..


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 101
    Par défaut Une ListArray d'une classe.. y'a un truc qui m'échappe..
    Amis du soir, bonsoir,
    Débutant en Java, j'ai parcouru le forum pour essayer de trouver une solution à mon problème mais en vain..
    Pour expliquer simplement :
    J'ai 2 classes : une classe Compte & une classe Operation (contenant la date de l'opération, son status (refusée/accepter), le montant de l'opération.
    La classe compte va contenir les opérations effectué par un compte.
    Sachant que l'on se sait pas le nombre d'opérations qui vont être effectuées, il faut prendre un vector ou plutôt une ArrayList si j'ai bien compris.

    J'ai déclarer dans ma classe compte, mon ArrayList comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ArrayList<Operation> lesOperations;
    puis dans le constructeur de ma classe Compte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    this.lesOperations = new ArrayList<Operation>();
    Ensuite, j'utilise une méthode pour aller remplir ma classe opération :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    	public void addOperation(String dateOp, String stat, float montant) {
    		Object o;
    		Operation A = new Operation("date", "refuse", 300);
    		o = lesOperations.add(A);
    		}
    Déjà, a ce stade, JBuilder m'indique que le "o" de Object n'est jamais lu..
    Ensuite dans le programme principal, je ne sais pas comment "appelé" cette méthode..
    J'ai déclarer un nouvel objet de la classe Compte ainsi qu'une nouvelle ArrayList de type Operation (ArrayList<Operation> opera; )
    Je dois maintenant remplir l'objet compte via 4 paramètres : l'id; la date; le solde PUIS les opérations effectués sur ce compte. Et c'est ici que sa bloque..
    Comme une opération est définie à l'aide de la date de l'opération, son status (refusée/accepter) et le montant de l'opération, il doit surement falloir les mettre dans un objet avant ?
    Je ne trouve pas la bonne syntaxe.. Enfaite, j'ai compris ce que je dois faire avec quel élément je peux le réaliser mais je n'arrive toujours pas.

    Je dois pas être bien loin de la solution quand même...
    Merci à ceux qui pourront m'orienter vers le droit chemin.

  2. #2
    Membre Expert Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Par défaut
    Et bien dans ton programme principal, il te faut instancier ta classe compte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Compte compte=new Compte();
    puis Quand tu veux creer une operation et l'ajouter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Operation operation=new Operation(date,accepte,montant);
    compte.addOperation(operation);
    Bien sur, il te faut avoir defini ces constructeurs dans l'implementation de tes classes compte et operation.

    Ensuite, tu dis :
    Déjà, a ce stade, JBuilder m'indique que le "o" de Object n'est jamais lu..
    C'est un warning qui t'indique que tu utilises un objet pour "rien"

    Tu pourrais directement ecrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public void addOperation(String dateOp, String stat, float montant) {
    Operation A = new Operation("date", "refuse", 300);
    lesOperations.add(A);
    }

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 101
    Par défaut arg
    Merci pour ta réponse !
    Mais, j'ai encore un souci appartement
    Voici ce que j'ai dans mon "main" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    	Compte compte = new Compte(1, "ladateici", 1300);
    	Operation op = new Operation("27/02/85", "Refusée", 300); //objet de type Operation
    	compte.addOperation(op);
    et il me souligne : addOperation(op) avec le message suivant :
    The method addOperation(String, String, float) in the type Compte is not applicable for the
    arguments (Operation)

    Dans ma méthode addOperation de la classe Compte, j'ai ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    	// Méthode pour remplir le vecteur Operation
    	public void addOperation(String dateOp, String stat, float montant) {
    		Operation A = new Operation(dateOp, stat, montant);
    		lesOperations.add(A);
    		}
    Mais, dans mon constructeur Compte, je dois quand même déclarer mon ArrayList ? (avec This....) ou juste les types primitifs?

    Merci

  4. #4
    Membre Expert Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Par défaut
    C'est normal tu declares une methode avec 3 arguments :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // Méthode pour remplir le vecteur Operation
    public void addOperation(String dateOp, String stat, float montant) {
    Operation A = new Operation(dateOp, stat, montant);
    lesOperations.add(A);
    }
    alors que avec, compte.addOperation(op); ,tu n'en passe qu'un seul et de type Operation

    Il te faut faire ceci dans ta methode operation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // Méthode pour remplir le vecteur Operation
    public void addOperation(Operation A ) {
    lesOperations.add(A);
    }

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 101
    Par défaut
    Mais est-ce que les Operations doivent être déclaré dans le constructeur de la classe Compte? sachant que c'est une ArrayList..
    Car si oui, au moment d'instancier un nouveau compte, il va me manquer un paramètre qui est "les operations"..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Compte compte = new Compte(1, "ladateici", 1300, op);
    ou op a été remplis via un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Operation op = new Operation (...)..
    Car si je fais ceci, il n'aime pas...

  6. #6
    Membre Expert Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Par défaut
    Non.

    Ton compte, c'est juste une classe qui contient des operations. Donc tu l'instancie une fois.
    Tu le declares comme tu as fait au depart:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public Compte(){
    this.lesOperations = new ArrayList<Operation>();
    }
    Et ensuite tu appelles la methode addOperation ...

    Je vois pas ou est le probleme

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 25/03/2011, 10h52
  2. [XL-2002] Macro de comparaison d'une cellule d'une feuille avec une cellule d'une autre feuille.
    Par steelydan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2010, 12h59
  3. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  4. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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