2010-12-02 5 views

Répondre

2

Non, vous devez utiliser le second exemple.

Si cette méthode est destinée à utiliser uniquement la variable membre, le deuxième exemple est correct.

Si vos intentions sont d'utiliser cette méthode avec d'autres valeurs passées, par exemple d'autres méthodes dans la classe, ou peut-être certains appels externes, alors la première option fera l'affaire.

+0

Je suis d'accord. C'est ce que sont les champs internes/privés. Toutes les méthodes d'une classe peuvent utiliser tous les champs d'une classe privée ou publique. – decyclone

0

Eh bien, cela dépend juste je suppose. Voulez-vous jamais appeler cette méthode avec autre chose que _someId comme paramètre? Si oui, utilisez le premier exemple. Sinon, utilisez la seconde.

+0

Cela est vrai, mais il y a deux cas à considérer ici - soit la méthode fait partie de l'interface, soit elle fait partie de l'implémentation. Si cela fait partie de la mise en œuvre, alors cela n'a pas d'importance - nous pouvons refactoriser pour ajouter le paramètre plus tard si nous en avons besoin, mais pour l'instant nous devrions simplement le garder simple. Vous n'en aurez pas besoin. Si cela fait partie de l'interface, d'un autre côté, nous avons un gros problème: s'il est supposé être appelé avec la valeur du champ de temps en temps, comment le code d'appel est-il censé gérer cela? Soudain, nous écrivons un accesseur juste pour supporter une autre méthode. Yuck. –

+0

Oui, mais l'OP indique clairement qu'il s'agit d'une méthode privée ("interne"). –

2

La méthode devrait «savoir» à ce sujet. C'est une grande partie du point d'avoir des champs en premier lieu.

0

La variable membre est étendue à la classe. Les fonctions membres en sont donc "au courant". Donc, en supposant que votre fonction membre n'est pas statique, votre deuxième exemple est correct.

Questions connexes