Prefer properties over [non-private] fields because properties give you the ability to change what the property does without effecting the interface.
. I've read this before in many places; I tend to agree for inheritable classes, but if the class is final, is there any problem with just using a field? Isn't adding additional validation (and exceptions) changing the "interface", silently?