Que peut-on faire avec une classe dont tous les membres (sans exception) sont privés.
Que peut-on faire avec une classe dont tous les membres (sans exception) sont privés.
Ca dépend si tu as des getter/setter publics pour y accéder.
Bonjour,
Si ta classe n'a que des attributs privés, tu peux toujours utiliser ces méthodes publiques si elle en a. Sinon à moins que ta classe soit particulière, par exemple, qu'elle etend la classe Runnable, ou qu'elle correspond à un Listener ou autre... je vois pas trop à quoi elle peut bien te servir.
Dis nous en plus sur cette classe
Pourquoi me parle-t-on toujours de méthode public.
Ma question est pourtant simple :
Tous les membres sont privés sans aucune exception. C' est clair ou pas.
Tous les champs sont private et toutes les méthodes sont private.
SANS AUCUNE EXCEPTION ! ! !
Moi je suis débutante en POO. J' essaye d' assimiler le mieux que je peux.
A quoi peut servir une classe dont tous les membres sont déclaré private
Quelqu' un vient de me répondre par mail en me disant que cette classe servira à créer d' autres classes appelées sous-classes. Notion d' héritage !
Qu' en pensez-vous ?
quand tu dis "membre" nous on entend pas méthodes.
Si tout est privé dans ta classe (membre et méthode) alors c'est que tout n'est utilisable qu'à l'intérieur de cette classe. Quant à l'étendre par héritage, c'est pareil, les méthodes privées ne sont pas "extensibles" par les sous-classes.
En gros j'imagine que ta classe a un constructeur publique et que ce constructeur appelle lui-même les méthodes privées de la classe pour faire des traitements. Bref c'est un choix d'implémentation (discutable). [EDIT] +1 avec Bulbo, si ton contructeur est private alors là elle sert à quedal ...
Quant à répondre de l'utilité de cette classe ben je sais pas. Faut voir à quoi elle ressemble. Du point de vue conception, c'est un objet qui ne met à disposition aucun service mais qui rempli certainement un rôle quand même. C'est un peu une boite noire pour le reste du programme qui l'utiliserait ...
Je pense que c'est n'importe quoi car cette classe ne pourra pas être construite, même par une classe fille, il faut au moins un constructeur protected, histoire qu'il soit accessible depuis les filles ..
Une classe telle que tu la décrit n'a aucun intérêt, tu ne pourra jamais accèder au code a l'intérieur ni l'appeler de toute façon ..
Bulbo
Je suis d'accord sur le fond, que cette classe n'a aucun intérêt. N'empêche qu'il est possible d'écrire une telle classe et qu'elle fasse quelque chose. Exemple tiré par les cheveux :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public class BlackBox { private Timer timer = new Timer(60* 1000 * 1000, new ActionListener() { public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(null, "1h que ça tourne !"); } }); private static BlackBox instance = new BlackBox(); private BlackBox() { timer.setRepeats(false); timer.start(); } }
Faux ... essaye de lancer cette classe maintenant ...
Le seul moyen que tu as c'est de déclarer une instance de cette classe quelque part, bonjour la propreté
Non seulement c'est un design qui ne sert a rien, ya moyen de faire en beaucoup plus propre le même genre de chose, mais si en plus un gars de mon équipe écrit un truc comme ça, je le jette dehors ..
Des classes impossible a instancier mais qui font quelque chose si on déclare une variable de ce type .. ça va à l'encontre de tout les "coding standard" possible.
Bulbo
J'ai bien précisé "exemple tiré par les cheveux" !
C'est en quelque sorte un singleton inacessible
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager