Thanks guys for this explanation. Since now I've thought that the final modifier somehow changes the place where the variable lives.
It's because first I've read (K. Sierra & B. Bates) that all local variables lives on the stack. That's why the method inner class cannot use these variables, as they might not exist anymore (the method could finished) while the object is still alive.
Then I've read that it's possible to access final local variables / parameters and asked myself: why? Does the final modifier changes the place in which the variable resides - from stack to heap or what?
Thanks for clearing this up - maybe someone in the future who will be preparing for
SCJP will have this cleared up :-)