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 :

getteur et seteur, interet?


Sujet :

Langage Java

  1. #1
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 53
    Par défaut getteur et seteur, interet?
    plop,

    mon prof de java nous a dis, si je vois des attribut en public, c'est 0.

    donc meme pour des classe toute pourri qui ne font que contenir des donnée (comme des structure en C), on met un getter et setter pour chaque attributs.

    donc apres je fais objet.get(xxx) ou objet.set(xxx) au lieu d'acceder directement en faisant objet.xxx

    interet?

    p>j'ai bien sur posé la question au prof et il m'a repondut, oui c'est questionable, mais c'est comme ça...
    m>euh....OK

    merci

  2. #2
    Membre expérimenté

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 215
    Par défaut
    C'est un principe de base à respecter quelle que soit la classe : pas d'accès direct, ni en lecture, ni encore moins en écriture, aux attributs.
    C'est une bonne habitude à prendre.

    Pour l'écriture, on peut comprendre. Il appartient à l'objet de modifier ses attributs selon sa logique interne, en vérifiant si les valeurs fournies sont cohérentes notamment, et donc les setteurs ne devraient pas trop faire débat.

    Pour la lecture, la manière de présenter la valeur en sortie et la manière dont elle est physiquement stockée peuvent différer. Une donnée peut aussi être calculée selon la valeur de plusieurs attributs. Et donc là encore, la façon dont l'utilisateur "voit" l'état de l'objet dépend de la logique interne de la classe.

  3. #3
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 53
    Par défaut
    ou mais la la classe ne fais rien, elle stocke juste des valeur qui servent a etre lu et modifié.

    genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
          Class Stockage{
     
          int value;
          string Name;
          int Age;
     
         //getter et setter
    }
    mais donc, si j'ai bien compris, dans certain cas, les getteur et setteur, empeche de mettre de mauvaise valeur dans les attribut dans le cas ou l'objet fais des calcul avec.

    et donc, meme si la ça ne sert a rien, c'est histoire d'avoir l'habitude et de ne pas oublier de le faire quand ça sera important?

  4. #4
    Membre expérimenté

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 215
    Par défaut
    Oui, c'est une question de qualité du code. Une fois l'habitude prise, quelle que soit la situation, vous ne risquerez pas (ou bien la personne qui utilisera les classes que vous aurez écrites) d'introduire de bugs dans vos applications en accédant directement aux attributs.

    Pour avoir du débugger des applications ayant ce genre de problème, je peux le dire clairement : c'est le pire type de bug, le plus difficile à diagnostiquer précisément.

    Donc même si je comprend bien que la réponse du prof (style "c'est comme ça" sans explication) ne soit pas la bonne, il a raison sur le fond du problème. Et le 0 est mérité. Mais il devrait expliquer pourquoi.

  5. #5
    Membre Expert
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Par défaut
    Citation Envoyé par sliders_alpha Voir le message
    et donc, meme si la ça ne sert a rien, c'est histoire d'avoir l'habitude et de ne pas oublier de le faire quand ça sera important?
    C'est cela.
    Note aussi que la convention getter/setter facilite la manipulation par réflexion, ce que font intensément les frameworks (typiquement, tu définis en xml des noms de propriété, et le framework appelle le getter/setter associé).
    Enfin ça évite (en partie) des problèmes d'héritage sur la fausse redéfinition des variables.

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

Discussions similaires

  1. interet d'un Cluster sur une table?
    Par toome dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 04/10/2005, 14h54
  2. [débutant] interet de XML
    Par unNew dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 09/09/2005, 09h48
  3. Interet de mettre des fichiers dans une base de donnée
    Par Oberown dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 04/07/2005, 11h35
  4. [C#] Les interfaces en C# - interet
    Par igorzup dans le forum Windows Forms
    Réponses: 14
    Dernier message: 10/03/2005, 11h01

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