I came across the following \"strange\" feature today - if you have a reference to an object from the class A in the body of the class A you can access the private fields of
It makes sense if you consider the intention of the 'private' modifier to hide implementation details.
Try thinking of it in terms of "this should be private to this class" (which in Java equates to "this should be private to this source file") rather than "this should be private to this instance".