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 :

classe membres privés


Sujet :

Langage Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 140
    Points : 50
    Points
    50
    Par défaut classe membres privés
    Que peut-on faire avec une classe dont tous les membres (sans exception) sont privés.

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Ca dépend si tu as des getter/setter publics pour y accéder.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 140
    Points : 50
    Points
    50
    Par défaut
    Citation Envoyé par fr1man Voir le message
    Ca dépend si tu as des getter/setter publics pour y accéder.
    tous les membres sont privés... sans aucune exception

  4. #4
    Membre actif

    Étudiant
    Inscrit en
    Mai 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 200
    Points : 276
    Points
    276
    Par défaut
    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

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 140
    Points : 50
    Points
    50
    Par défaut
    Citation Envoyé par floflo_2006 Voir le message
    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

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 140
    Points : 50
    Points
    50
    Par défaut
    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 ?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 140
    Points : 50
    Points
    50
    Par défaut
    Citation Envoyé par Nayila Voir le message
    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 ?
    ??????

  8. #8
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    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 ...

  9. #9
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Points : 1 937
    Points
    1 937
    Par défaut
    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

  10. #10
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    Citation Envoyé par bulbo Voir le message
    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();
      }
    }

  11. #11
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Points : 1 937
    Points
    1 937
    Par défaut
    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

  12. #12
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    J'ai bien précisé "exemple tiré par les cheveux" !
    C'est en quelque sorte un singleton inacessible

  13. #13
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Points : 1 937
    Points
    1 937
    Par défaut
    Citation Envoyé par herve91 Voir le message
    J'ai bien précisé "exemple tiré par les cheveux" !
    C'est en quelque sorte un singleton inacessible
    Pire que tiré par les cheveux, le seul intérêt que je vois à ce genre d'écriture, c'est d'y placer du code malicieux qui passerait ainsi inaperçu auprès des autres développeurs.

    Bulbo

Discussions similaires

  1. Réponses: 3
    Dernier message: 02/01/2015, 02h30
  2. Modifier un membre privé d'une classe
    Par Haythem17 dans le forum Débuter
    Réponses: 3
    Dernier message: 22/03/2014, 22h29
  3. Réponses: 2
    Dernier message: 18/04/2012, 17h47
  4. Réponses: 15
    Dernier message: 03/12/2008, 11h47
  5. reccupérer un membre privé d'une classe
    Par ouinih dans le forum C++
    Réponses: 10
    Dernier message: 16/08/2007, 11h37

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