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 :

[Visibilité]


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 476
    Par défaut [Visibilité]
    Bonjour!

    J'ai un probleme de conception en JAVA.
    Jai une classe qui contient une collection d'objets et j'aimerai que plusieurs classes puissent accèder aux méthodes de cette collection sans dupliquer cette collection.
    J'aimerais éviter d'utiliser une visibilité de type "static".
    Quelqu'un aurait une idée ???

    Merci

  2. #2
    Membre éprouvé Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Par défaut
    oui tu passe ta liste en argument aux methode qui en ont besoin

  3. #3
    Membre averti
    Inscrit en
    Décembre 2005
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 19
    Par défaut
    Si l'attribut de la collection dans ta classe est private il suffit que tu déclarare un accesseur sur cette collection.

    En d'autres termes tu auras quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public class Toto {
         private ArrayList maCollection;
     
       public ArrayList getCollection() {
          return maCollection;
       }
    }

  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 Re: [Visibilité]
    Salut,

    Citation Envoyé par thebloodyman
    J'aimerais éviter d'utiliser une visibilité de type "static".
    "static" n'est pas une visibilité mais permet de dissocier un élément d'une instance de la classe (cf FAQ : Que signifie le mot-clé static ?).


    Citation Envoyé par thebloodyman
    Quelqu'un aurait une idée ???
    Cela dépend des classes qui devront utiliser cette collection...
    FAQ : Que signifient les mots-clés public, private et protected ?

    a++

  5. #5
    Membre Expert
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Par défaut
    Une méthode ( pas propre du tout mais rapide ) : déclarer ta collection comme publique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    class CollectionTest{
       public Collection maCollection;
    }
     
    class Test{
       CollectionTest ct=new CollectionTest(...);
       ...
       ct.maCollection; // Tu as le droit de faire ça car public.
    }
    Je répète, cette méthode n'est pas propre, il faut mieux utiliser un accesseur de type "getMaCollection()".

  6. #6
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 84
    Par défaut
    Je ne sais pas si vais répondre à ta question (une petite illustration avec du code aurait été la bienvenue).

    Pour faire comme ioHack, on peut aussi utiliser des getter. Java ne fonctionne que par passage d'adresse, donc quand on affecte un objet à un autre autre objet, on ne recopie pas tout en mémoire mais seulement l'adresse de l'objet.

    Donc en gros, si toutes les classes connaisse l'adresse de tes collections elles pourront y accèder sans problème.


    Par exmple, si tu déclares ces objets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    Object test = new Object();
    Object test2 = test;
    quand tu fera appelle à la méthode test.toString() et test2.toString() tu aura la même valeur car c'est la même fonction (en mémoire) qui sera exécutée. D'ailleur la valeur affiché correspond à l'adresse de l'objet dans la JVM.

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 476
    Par défaut
    Merci à tous ceux qui ont répondu.
    Autant pr moi pour Static
    J'ai appris un truc comme ca

    Sinon la solution proposé par jeje99 et iohack m'ont l'air pas mal du tout.


    Et merci pr les exemples plus ou moins détaillés

    A+

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

Discussions similaires

  1. Visibilité de methodes dans Classe de Class
    Par Math75 dans le forum C++
    Réponses: 9
    Dernier message: 28/09/2004, 12h48
  2. Réponses: 6
    Dernier message: 08/09/2004, 12h35
  3. Visibilité d'une variable
    Par nenoeil dans le forum Langage
    Réponses: 3
    Dernier message: 09/07/2004, 14h14
  4. visibilite de mon serveur sur internet
    Par jabaka dans le forum Apache
    Réponses: 9
    Dernier message: 03/05/2004, 14h22
  5. [ActiveX] Visibilité d'une propriété
    Par paradise dans le forum Composants VCL
    Réponses: 2
    Dernier message: 14/11/2002, 18h33

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