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 :

Modifier un objet par sa référence


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 3
    Par défaut Modifier un objet par sa référence
    Bonjour,

    Mon problème est le suivant :

    J'ai, disons, 3 classes : C1, C2 et C3 qui étendent la classe C. Chacune de ces classes a un attribut objet de type A.

    Ce que je souhaite faire, c'est instancier A, puis instancier C1, C2, C3 en passant en paramètre mon instance de A :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    A a = new A();
     
    C c1, c2, c3;
    c1 = new C1(a);
    c2 = new C2(a);
    c3 = new C3(a);
    Une méthode commune aux trois classes qui héritent de C doit être appliquée à mon instance a. Le fait est que cette méthode doit modifier a et que le résultat doit se répercuter dans les autres instances de C.

    L'exemple ci-dessus n'est pas forcément le plus approprié pour exprimer le besoin, mais je pense qu'il est suffisamment clair.

    Y a-t-il un moyen de faire ça en JAVA ?

    Cordialement,

  2. #2
    Membre Expert Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 341
    Par défaut
    Bonjour,

    je pense qu'il n'y a pas de souci:
    Dans chaque classe de type C, il faut instancier un membre de type A:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    C
    {
      private A instanceA;
     
      public C( A pointeurSurA )
      {
         instanceA = pointeurSurA;
     
      }
     
      /.../
    }
    Ensuite dans chaque classe de type C, on pourra accèder à l'instance de la classe A grâce au membre instanceA.

    En espérant que je ne sois pas hors sujet...
    @ bientôt...

  3. #3
    Membre expérimenté Avatar de ManusDei
    Homme Profil pro
    vilain troll de l'UE
    Inscrit en
    Février 2010
    Messages
    1 624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : vilain troll de l'UE

    Informations forums :
    Inscription : Février 2010
    Messages : 1 624
    Par défaut
    Edit : vu la réponse au dessus, je crois que je suis hors-sujet.

    Il me semble pas que ça soit possible, "juste comme ça".

    Tes objets sont indépendants, donc à moins de créer une dépendance, il n'y a je suppose pas de moyen d'avoir des modifications en cascade.

    Tu pourrais envisager de créer un ensemble contenant tous tes objets de classe C. La fonction de modification d'un objet appellerais une fonction modifiant tous les objets de l'ensemble.
    Mais c'est vraiment pas terrible comme solution.

  4. #4
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Par défaut
    En créant un attribut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    protected static A monAttribut
    dans ta classe mère, tu n'auras pas besoin d'initialiser l'attribut dans les classes filles, et les opérations de chaque classes seront répercutées.
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    heu, très mauvais idée le static. Les cas sont relativemet rare ou on a besoin d'un static. dans le cas présent, avec le code d'origine, tout opération sur l'instance de A sera vu dans les différentes classes qui l'ont reçu en constructeur, il n'y a donc rien de particulier à faire.

  6. #6
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Par défaut
    Ouh, faut que j'aille dormir moi pour avoir loupé ça x)

    Merci de la correction.
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

Discussions similaires

  1. modifier un Double par référence
    Par oc_alex86 dans le forum Langage
    Réponses: 5
    Dernier message: 11/06/2007, 09h38
  2. [POO] Modifier un objet [références]
    Par MorganStern dans le forum Langage
    Réponses: 11
    Dernier message: 04/05/2007, 12h44
  3. [POO] Modifier attributs d'un objet par référence
    Par justSam dans le forum Langage
    Réponses: 8
    Dernier message: 22/02/2007, 07h58
  4. retour d'objet par référence...
    Par sas dans le forum C++
    Réponses: 15
    Dernier message: 28/05/2005, 17h54
  5. [JACOB] Comment passer un objet par référence à une méthode
    Par zlavock dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 21/03/2005, 18h28

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