NestedClass.java
package simple.sample;
public class NestedClass {
private int val=1;
public static void main(String[] args) {
StaticClass1 sc1=new StaticClass1(); // or NestedClass.StaticClass1
System.out.println(sc1.getId());
NestedClass top=new NestedClass();
System.out.println("value:"+top.getValue());
}
public int getValue() {
MemberClass1 mc1=this.new MemberClass1(); // can only instantiate inside a non-static member method
return mc1.getValue();
}
private static class StaticClass1 {
int id=10;
private int getId() {
return id;
}
}
private class MemberClass1 {
private int getValue() {
return val+1;
}
}
}