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

Diagrammes de Classes Discussion :

[DC] Variables globales et getter ?


Sujet :

Diagrammes de Classes

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    401
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 401
    Par défaut [DC] Variables globales et getter ?
    Bonjour à tous,

    j'ai une question qui me trotte dans la tête à chaque fois que je fais une classe...

    Quelle différence concrête entre une variable "public" et un getter d'une variable privée ?

    Merci d'avance pour votre réponse

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Mars 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 51
    Par défaut
    Hello,
    je suis désolé mais les Getter et les Setter non pour moi quasiment aucun sens en Objet.
    En fait tout dépend de ce que tu demandes à ton Objet.
    Par exemple, de mander l'état courant de ton Objet A par l'Objet B pour faire telle ou telle action ensuite...Hé bien c'est moche !

    Dans ton cas, la différence est que ta variable privée accéder par getter ne peut pas être modifier comme une publique.

    @+

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    401
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 401
    Par défaut
    merci pour cette réponse.

    Alors imaginons que j'ai une variable public dans ma classe.

    Si je créé une méthode dans laquelle j'utiliserais cette variable, devrais-je l'a déclarer en tant qu'argument ?

  4. #4
    Membre Expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Par défaut
    non, pas plus d'ailleurs si elle etait privee.

    Une attribut d'une classe ne peux etre passé en argument à une operation de cette meme classe, sauf si l'opération en question est static.

    [Mais on n'est pas dans le forum UML la ?]

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Mars 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 51
    Par défaut
    Citation Envoyé par hed62 Voir le message
    non, pas plus d'ailleurs si elle etait privee.

    Une attribut d'une classe e peux etre passé en argument à une operation de cette meme classe, sauf si l'opération en question est static.

    [Mais on n'est pas dans le forum UML la ?]
    Héhéhé... Si on est bien sur le forum UML mais justement, profitons-en pour rattrapper les brebis égarées !;o)
    Donc effectivement, l'attribut d'un objet ne peut pas être tripoter par un autre objet ! Sinon, on se rapproche d'un architecture centralisée de type "Blob Objet", à savoir un énorme objet qui gère tous les autres petits... Donc une architecture sans intérêt !

    @+

  6. #6
    Membre Expert
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Par défaut
    Je n'ai pas compris la question et encore moins les réponses

    PS : un "blob object" ca n'existe pas, c'est un "god object" ...
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  7. #7
    Membre Expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Par défaut
    Pourtant les questions me parraissaient claires...

    - Différences entre private+get/set et public
    - si il a et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public void toto(...){print x;}
    doit-il spécifier que toto prend x en parametre.

    Le problème c'est que l'on est sur le forum UML et que ces divers détails ne devraient pas voir le jour ici à mon sens.

  8. #8
    Membre expérimenté
    Profil pro
    Enculeur de mouches
    Inscrit en
    Septembre 2003
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Enculeur de mouches

    Informations forums :
    Inscription : Septembre 2003
    Messages : 133
    Par défaut
    L'enorme intérêt des getters / setters est que mettons dans la version 1 une classe A accède à un attribut de B via ses accesseurs. Ca ne change pas beaucoup, finalement, du cas ou l'attribut est public.

    Mettons maintenant qu'en v2, on décide qu'on va splitter la classe B et l'attribut se retrouve dans une classe "subordonnée" à B.
    Il suffira de laisser les accesseur sur l'attribut de B dans B, mais en modifier le code pour qu'ils aillent taper dans C (au lieu de B précédemment) : on n'a pas à modifier A.

    Autre intérêt : plutôt que d'avoir un attribut accéssible ou non, on peut avoir quatre modalités d'accès :
    - Read/Write (un peut comme s'il était, finalement, public, mais en plus on peut faire des vérification sur la valeur dans le setter)
    - ReadOnly (juste le getter)
    - WriteOnly (juste le setter)
    - noAccess (pas d'accesseur)

    Voilou.

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

Discussions similaires

  1. Variable globale / Propriété des threads
    Par rgarnier dans le forum XMLRAD
    Réponses: 4
    Dernier message: 03/10/2003, 10h49
  2. Cacher Variable Url avec Variable Globale
    Par danuz dans le forum XMLRAD
    Réponses: 6
    Dernier message: 26/09/2003, 17h20
  3. Variable "globale" (dans plusieurs templa
    Par mattmat dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 17/06/2003, 19h22
  4. question sur les variables globales et les thread posix
    Par souris_sonic dans le forum POSIX
    Réponses: 5
    Dernier message: 13/06/2003, 13h59
  5. les variables globales static
    Par gRRosminet dans le forum C
    Réponses: 8
    Dernier message: 27/04/2002, 08h34

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