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 :

Probleme portant sur Methode d'objet.


Sujet :

avec Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 84
    Points : 67
    Points
    67
    Par défaut Probleme portant sur Methode d'objet.
    J'ai un problème de conception pour un méthode qui s'appelle "miseAPied", dans la classe Patron.

    Alors, cette méthode est sensé faire un ArrayList.remove d'un object. Le problème c'est que l'object est situé dans un ArrayList qui est dans une autre classe appelé "EmployeeTempPartiel".

    Est-ce qu'il faudrait que je GET le ArrayList de l'autre classe, place dans un nouveau ArrayList crée dans la méthode miseAPied" et ensuite j'enlève l'object pour, finalement, renvoyé la copie du ArrayList pour écraser l'ancienne copie situé dans la classe "EmployeeTempPartiel" en utilisant le SET du ArrayList?

    Merci d'avance... Je n'ai pas de code à offrir car je suis tout simplement bloquer. Je doit être capable de faire cela avec trois classes différentes, il me semble que j'aurais beaucoup trop de ligne de code pour quelque chose d'aussi simple. Si vous avez besoin d'information n'hésitez pas.

    -YZ

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 764
    Points : 909
    Points
    909
    Par défaut
    Je reformule ton problème afin d'être sûre d'avoir compris...
    Tu as une classe Patron, et une classe EmployeeTempPartiel. (au passage : on dit "temps" avec un s et "employee" c'est de l'anglais, "temps partiel" c'est du français )
    EmployeeTempPartiel contient un ArrayList. Je suppose qu'il s'agit d'une variable de classe...
    Tu veux écrire une méthode miseAPied dans la classe Patron qui enlève un objet de la liste contenue dans EmployeeTempPartiel.
    C'est bien ça ?

    Dans ce cas, le plus simple et le plus évident est de gérer les manipulations de la liste dans la classe EmployeeTempPartiel.
    Et donc :
    - tu écris une méthode dans EmployeeTempsPartiel qui effectue les manipulations voulues (du genre : this.laListe.remove(leTruc) + éventuellement retourne leTruc qui a été enlevé)
    - tu appelles cette méthode depuis la classe Patron dans la méthode miseAPied (du genre : lEmployeMisAPied.enleveLeTrucDeTaListe())

    Un des principes de la programmation objet, c'est que les variables de classe "appartiennent" à l'objet représenté par la classe : si tu as placé ta liste dans EmployeeTempPartiel, c'est que cette liste représente quelque chose pour l'employé, et pas pour le patron, non ? C'est donc l'employé qui doit gérer cette liste... le patron se contente de "donner l'ordre" à l'employé de le faire.



    EDIT
    Autre remarque au passage
    Citation Envoyé par Yakuzan Voir le message
    Est-ce qu'il faudrait que je GET le ArrayList de l'autre classe, place dans un nouveau ArrayList crée dans la méthode miseAPied" et ensuite j'enlève l'object pour, finalement, renvoyé la copie du ArrayList pour écraser l'ancienne copie situé dans la classe "EmployeeTempPartiel" en utilisant le SET du ArrayList?
    Si tu récupères l'ArrayList avec une méthode du type List getLaListe() { return this.laListe;} dans EmployeeTempPartiel, comme un ArrayList est un objet et est donc passé par référence, toutes les modifications que tu effectueras sur cet objet se feront bien sur la liste de EmployeeTempPartiel, tu n'auras donc pas à "écraser" l'ancienne liste...

  3. #3
    Membre à l'essai
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Décembre 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 16
    Points : 23
    Points
    23
    Par défaut
    Bonjour,
    Suppose que tu as une classe A et une classe B. Et tu as un objet de la classe A nommé a. La classe A possède un attribut b de type B ainsi qu'un attribut de type ArrayList nommé arrayListA. Et la classe B possède aussi un attribut de type ArrayList nommé arrayListB. D'après ta question, j'ai compris que t veux savoir comment supprimer un objet de la liste arrayListA qui se trouve dans arrayListB. Dans ce cas il faut au moins que tu sache son index dans arrayListB. et si le cas tu peut donc faire :

    Dans A :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public boolean removeAt(int index){
            Object o = b.getObject(int index);
        try{
              arrayListA.remove(o)
              return true;
          } catch(Execption e){
          return false;
         }       
    }
    ou :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public boolean remove(Object o){
        try{
              arrayListA.remove(o)
              return true;
          } catch(Execption e){
          return false;
         }       
    }
    Dans B:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public Object getObject(int index){
       return arrayList.get(index);
    }
    Dans le premier cas tu peut faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    boolean test = a.removeAt(0);
    Dans le deuxième cas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Object o = b.getObject(0);
           boolean test = a.remove(o);

Discussions similaires

  1. Liste d'objet : probleme avec la methode add
    Par Driktheviking dans le forum C#
    Réponses: 4
    Dernier message: 07/06/2011, 09h30
  2. Réponses: 1
    Dernier message: 06/03/2010, 08h19
  3. Réponses: 5
    Dernier message: 09/11/2009, 12h12
  4. Réponses: 2
    Dernier message: 28/06/2008, 10h08

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