Your confusion has stemmed from the fact that your code is a case where the outer class is not only associated with the inner class in the normal way, but also a superclass of the inner class.
I modified your code and the result was interesting.
B is not able to see R as its outer class even if I specify R,this.i. It only considers it as a Super class. I presume you were wondering why you cant see the outer class value of i?
I removed the extends from B class and now then it prints the value of i in R as 4. I presume you wanted to see this.
Does this mean if the inner class extends its own outer class it can't see it as a OUTER class.
Anyone has explanations?
[This message has been edited by Subha Guhan (edited November 07, 2000).]