A name occurring in an expression may be, syntactically, an ExpressionName (§6.5). The meaning of such an ExpressionName depends on its form:
this.
Identifier
containing the keyword this
(§15.7.2)..
Identifier, then a compile-time error occurs.
.
Identifier, then it is refers to a static
field of the class or interface named by the TypeName. A compile-time error occurs if TypeName does not name a class or interface. A compile-time error occurs if the class or interface named by TypeName does not contain an accessible static field named by the Identifier. The type of the ExpressionName is the declared type of the static
field. The value of the ExpressionName is a variable, namely, the static
field itself.
.
Identifier, where Ename is itself an ExpressionName, and the ExpressionName is treated exactly as if it had been the field access expression (§15.10):
(
Ename).
Identifier