inner class in Java

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();
    }
}
```