Final (Java): Difference between revisions

Content deleted Content added
Davidsusu (talk | contribs)
m Final variables can be assigned not only "at the end" of a constructor.
Line 97:
===Final and inner classes===
 
When an anonymous [[inner class]] is defined within the body of a method, all variables declared <code>final</code> in the scope of that method are accessible from within the inner class. OnceFor scalar values, once it has been assigned, the value of the <code>final</code> variable cannot change. For object values, the reference cannot change. This allows the Java compiler to "capture" the value of the variable at run-time and store a copy as a field in the inner class. Once the outer method has terminated and its [[call stack|stack frame]] has been removed, the original variable is gone but the inner class's private copy persists in the class's own memory.
 
<source lang="Java">