An access to its value consists of the simple name of the variable (or, for a field, the simple name of the field qualified by
this) occurring anywhere in an expression except as the left-hand operand of the simple assignment operator
For every access of a local variable or blank
final field x, x must be definitely assigned before the access, or a compile-time error occurs.
Similarly, every blank
final variable must be assigned at most once; it must be definitely unassigned when an assignment to it occurs.
Such an assignment is defined to occur if and ...