MyOuter.MyInner oi = new MyOuter.MyInner();<--explain this line.
yes, here you are instantiating a static nested class. As you know, nested classes are simply members of the class like other members.
say for example you need to access any static member of a class then you say
ClassName.staticMember. similarly in above code you access the static nested class constructor.
For inner classes, since thy are bound to instances, you need to say something like outerClassObj.MyInner()
Hope this helps
