I came across a chapter review question as follows:
Q. Variables declared inside a method as final retain their value between invocations of the method in which they are defined (true/false).
A. The answer to this question is true (at least in Java 1.2)
I tried to build a method which I could prove this to be true but could not. Is there anyone who has an example which can prove this concept? Although I can understand that a final variable would be considered a constant, it goes against my understanding of variable scope being limited to the method in which it is declared.
I'm not sure I follow everything that's going on here. Perhaps I'm misunderstanding the question or the answer. From what you've said, I came up with this little test program:
From what you've said, I'd expect this to print 1 and 1, but it doesn't, it prints 1 and 2 (which is what I'd expect, frankly). Was there any explanation given for that answer that we might investigate further?
Each call to your doIt method gets a new final int x. A special meaning of final for variables declared inside a method was added to support inner classes so that if the inner class object lives on past the method call, the variable will still exist. Bill