Puis-je faire une variable finale après qu'elle a été déclarée?
Je suis en train de faire un modèle de banque, et d'un Compte de classe a d'une accountNumber champ. Le numéro de compte ne doit jamais changer, mais je ne peux pas définir le champ finale parce que cela permettra d'éviter le constructeur de réglage.
Si il n'est pas possible de le faire, il n'a pas d'importance. C'est juste pour une CS d'affectation, donc je veux m'assurer que je suis en train de faire du mieux que je peux.
Serait la meilleure mise en œuvre-être juste prendre du champ et de sa méthode setter privé?
source d'informationauteur Matt | 2010-11-15
Vous devez vous connecter pour publier un commentaire.
Le constructeur peut définir si elle est marquée comme
final
par exemple, ce qui suit est juridique:En effet, si un champ est marqué comme
final
mais pas initialisé dans sa déclaration, il doit être réglé dans tous les constructeurs.Si vous ne mettez pas un public setter de la classe puis le numéro de compte ne peut pas être modifié à partir de l'extérieur de la classe, mais le marquer comme final sera aussi l'empêcher (accidentellement) est modifiée par toutes les méthodes à l'intérieur de la classe.
Si une variable est
final
il peut (et doit) être initialisé dans le constructeur.