A inner class is defined at the member level of a class (the same level as the methods, instance variables, and constructors).
* An inner class is associated with an instance; hence, it cannot contain any static members, except for constant variables.
* The private access modifier on a member of a nested class is private in the sense that the member cannot be access from outside of the utmost class. All access from within that outer class is valid.
```
public class Main {
private class B {
private int v = 1;
private void f() {}
}
public static void main(String[] args) {
Main a = new Main();
Main.B b = a.new B();
b.v=2;
b.f();
}
}
```