Partage
  • Partager sur Facebook
  • Partager sur Twitter

Propriétés ou utilisation du "this"

    21 octobre 2018 à 13:42:21

    Bonjour,
    Je suis en train d'apprendre à programmer orienté objet dans mon école et je me posais une question vis-à-vis des méthodes dans les classes.
    Est ce qu'il y a une convention quant à l'appel des champs dans les méthodes d'instances et de classe ?
    Par exemple, prenons une classe "Compte" et la méthode d'instance "Créditer"  est ce qu'il est mieux d'écrire ça :

     public void Créditer(int nbCredit)
                {
                    this.montant += nbCredit;
                    nbEssaie = 0;
                    this.flag = true;
                }

    ou ça :

     public void Créditer(int nbCredit)
                {
                    Montant += nbCredit;
                    nbEssaie = 0;
                    Flag = true;
                }

    Avec flag un booléen (true --> compte ouvert ; false --> compte férmé).

    Flag et Montant sont les propriétés pour accéder et modifier les valeurs falg et montant.

    • Partager sur Facebook
    • Partager sur Twitter
      22 octobre 2018 à 11:49:08

      Comme vous le dite, c'est bien des conventions et non des normes, et elles sont énormément liées à un langage, pas à la POO.

      Ces conventions sont fonctions des projets ET des langages.

      Mais, il est préférable d'avoir des conventions qui facilitent le travail ; comme la lisibilité, en premier lieu.

      "this" est d'une lourdeur énorme et n'apporte rien, en C# et en VB.NET, mais pas en JavaScript où son utilisation est obligatoire.

      Dans les langages .NET les plus répandues, C# et VB.NET, la seule vraie utilité est de désambiguïser l'utilisation d'un champ (ou tout membre plus généralement) de la classe avec un paramètre de la méthode de même nom. Ce qui, dans les faits, est extrêmement peu commun, sauf dans l'implémentation de constructeur de classes peu évoluées (sacs de données, plus que fournisseur de services).

      Pour l'utilisation des champs ou des propriétés, il n'y pas de règles absolues mais il faut comprendre que l'utilité des propriétés est de pouvoir facilement implémenter des invariants dans les champs d'une classe, les préconditions, les post-conditions. Il est donc généralement très utile d'utiliser les propriétés plutôt que les champs.

      Quand vous aurez l'habitude, l'usage d'un champ vous fera tiquer en vous disant "Il y a un truc un peu tricky dans le coin parce qu'on n'a shunter les validations de la propriété".

      • Partager sur Facebook
      • Partager sur Twitter
      Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.

      Propriétés ou utilisation du "this"

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown