Hi,
In class Outer you have class Inner which is a static member.
So, the fully qualified name of Inner class is Outer.Inner & hence this is used to get the reference of Inner class. Now u need not require an object to access class-level/static variables. So we can write as follws
Outer.Inner oi = Outer.new Inner() will work.
But u can access static members with an object of the class also.So
Outer o = new Outer(); Outer.Inner oi = o.new Inner(); also works.
Thats why answer c is right.
But accrocing to
Java there is no such type of expression like
newOuter.Inner();
If u want this way u can say
new Outer().new Inner();
So, thats why e is wrong.
I hope u got it.
Ok ,bye