my dog learned polymorphism*
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes Interface instant variables Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Android Security Essentials Live Lessons this week in the Android forum!
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "Interface instant variables" Watch "Interface instant variables" New topic

Interface instant variables

Henry Zhi Lin
Ranch Hand

Joined: Nov 04, 2008
Posts: 69
Another question for you guys, it from John Meyers' mock test.

The code has compilation error on line 2.

My question is why the compilation pass the line 1? n is a final as well?

SCJP 5.0
Henry Zhi Lin
Ranch Hand

Joined: Nov 04, 2008
Posts: 69
Just had another thought, it pass line one because it change the n's object's x value, but does not change reference n to other object (still point to the old object with x changed). Unlike n, number++ change it reference to other primitive object?

Am I right?
[ November 07, 2008: Message edited by: Henry Zhi Lin ]
Rekha Srinath
Ranch Hand

Joined: Sep 13, 2008
Posts: 178
Yes you are right Henry..
Once a value is assigned to a final wrapper object, its value cannot be changed.
See this link for a related post:
Henry Zhi Lin
Ranch Hand

Joined: Nov 04, 2008
Posts: 69
See you post, and thanks for your explain.
I agree. Here's the link:
subject: Interface instant variables
Similar Threads
Converting Number to Word
Why final object value can be change whereas final variable value can't?
Starting a new line with FileWriter class
program correction
object creation in GC