(Bent C Dalager) wrote in message news:<bf7rk2$qp2$>...
> In article <>,
> Wolfgang <> wrote:
> >Peter van der Linden writes that a good way to think of of an inner
> >class object is that, because it is associated with an instance of
> >it's enclosing class, it really has two "this" pointers: one to itself
> >and one to its enclosing object.
> >
> >What does that look like in practice?
>
> class Outer
> {
> int member;
> class Inner
> {
> public void printOuterMember()
> {
> System.out.println(member); // prints Outer's member
> }
> }
> }
>
> >
> >How does an inner class refer to members of it's enclosing class? And
> >what happens when an inner class member has the same name as a member
> >of the enclosing class?
>
> You have to qualify it if you want to bypass the inner one:
>
> class Outer
> {
> int member;
> class Inner
> {
> int member;
> public void printMembers()
> {
> System.out.println(member); // prints my own inner member
// OR expressed as
System.out.println(this.member);
> System.out.println(Outer.member); // prints Outer's member
// OR expressed as
System.out.println(Outer.this.member);
> }
> }
> }