例えばこういうケース
public Hoge {
public Piyo {
}
}
で、PiyoはHogeのインスタンスに依存しているので外部からは
new Piyo();
は実行できない。
ので、先にHogeをインスタンス化してからそいつに付随するインスタンスとしてNewする。書き方はこう
Hoge a = new Hoge();
Piyo b = a.new Piyo();
a.newとか初めて見たのでびっくり。
因みにインナークラスを使うと特定のクラスにだけパブリックとかが実現できるので便利。
追記
ちなみに、classをインナークラスをstaticで宣言すればHoge.classに付随するPiyoが普通のnew文で作成できる。