Si je veux créer un formulaire qui ajoute des personnes à une liste, comment puis-je avoir accès à cette liste depuis une autre classe? Où devrais-je définir cette liste afin que d'autres classes puissent accéder aux membres, à la taille, etc.? Par exemple, si j'ai une classe Foo qui a l'interface graphique pour mon formulaire, ainsi que des boutons pour ajouter et supprimer des personnes à la liste, il serait logique de déclarer la liste comme une variable d'instance privée de classe Foo. Mais alors, si j'ai une autre classe, Barre de classes, comment obtient-elle les valeurs qui sont actuellement dans cette liste pour mettre à jour d'autres composants graphiques? Ou est-ce le mauvais endroit pour déclarer la liste en général? Merci.Avoir accès à une variable privée d'autres classes en Java
Répondre
Les autres classes ne doivent pas être en contact avec la liste. Ils devraient interroger le Foo pour obtenir des informations sur la liste, à quel point le Foo peut parler à sa liste privée.
Vous ne devriez pas leur donner un accès direct à une variable privée (en fait les classes extérieures ne la verront même pas).
Pour donner/modifier les informations de la liste, la classe Foo doit avoir des méthodes pour interagir avec la liste privée. Par exemple, vous pouvez avoir une méthode appelée getSize() qui retournera la taille de la liste.
Je suppose qu'il y a un 'non' manquant dans la première phrase –
Vous avez raison. J'ai fait le changement. – Pran
Dans le cas le plus simple d'utiliser une fonction getter:
Ensuite, d'autres objets peuvent fonctionner sur la liste directement. Pour être plus orienté objet, envelopper les méthodes liste d'accès à votre objet, et ne jamais revenir directement l'objet de la liste, par exemple:
Object getItemFromList (int i) { return list.get(i); }
Comme je l'ai dit dans my answer to your previous question, je ne pense pas une liste de données appartient à l'intérieur d'un composant gui. Je pense que vous devriez avoir un noyau d'application, un service si vous voulez, que vous pouvez utiliser depuis le composant gui, sans coupler les deux.
De cette façon, il est possible de créer un client Web, un client de ligne de commande, un client SWT, etc. sans modifier le code de l'application principale. Vous venez d'écrire une nouvelle interface graphique et d'y injecter le service. Une interface graphique doit avoir accès aux services mais ne pas en être un.
- 1. Accès à une variable privée dans une portée globale
- 2. accès javascript variable en Java
- 3. accès variable privée de fonction membre en PHP
- 4. Accéder à une variable privée de la classe super() en Java - JChart2D
- 5. Comment avoir accès à une variable externe dans une fermeture en rubis?
- 6. Rendre XStream ignorer une variable privée spécifique
- 7. Java, en utilisant une variable dans les classes
- 8. Convertir une clé privée PKCS # 8 en PEM en java
- 9. Test MS - Accès à la propriété privée
- 10. Comment avoir accès à une variable via différentes méthodes de classe en PHP?
- 11. C# liste variable privée
- 12. Accès à une variable dans Smarty Array
- 13. Java Classes en classes C#
- 14. Les classes parent et enfant de Java peuvent-elles avoir la même variable d'instance?
- 15. Objectif simple C Question: Comment puis-je avoir accès à une variable d'une autre classe?
- 16. Accès variable externe en classe PHP
- 17. Flex: accès à une variable membre en utilisant une variable dans le nom
- 18. Cryptage avec une clé privée RSA en Java
- 19. Accès à la variable C#
- 20. Modificateurs d'accès dans une classe imbriquée statique privée en Java
- 21. Dois-je déclarer une variable privée pour une propriété IBOutlet *?
- 22. Accès Fonction Variable Après avoir appelé tout en étant en main()
- 23. Classes dépendantes en Java
- 24. Hériter une variable statique en Java
- 25. Comment ajouter une variable privée à cet extrait de littéral d'objet Javascript?
- 26. Accès à toutes les classes enfants de la classe parente en Java
- 27. applet Java Accès d'une autre applet Java
- 28. Un moyen de forcer les classes à avoir un champ final public statique en Java?
- 29. Accès à une variable globale dans un serveur Tomcat multithread
- 30. NSMutableDictionary Accès à partir de différentes classes
Pouvez-vous me donner un exemple de comment cela fonctionnerait? Je devine que je suis confus puisque je déclare seulement un objet de type Foo, alors si j'avais une fonction qui retourne la taille de la liste, je devrais créer un nouvel objet à partir de ma classe Bar pour utiliser la fonction membre getSize ? – Crystal
Pourquoi Bar n'utiliserait-il pas l'instance existante de Foo? –
Comment Bar utilise-t-il cette instance créée dans une autre classe? – Crystal