How static nested class has this pointer
<p>Today I was reading about static nested class and I am little confused because of below code.</p>

<pre><code>class testOuter {
    int x;
     static class inner {
       int innerVar; 
    public void testFunct() {
        x = 0;       // Error : cannot make static reference to non static field
        innerVar = 10;
        outerFunc(this);
     }
     }
     static void outerFunc(SINGLETON s) {

     }
}
</code></pre>

<p>What I understood about static nested class is, it behaves like a static member of outer class. It can refer only static variables and can call static methods. From the above code
Error at <code>x=0</code> is fine. But what I am confused is if its behaves like static block, then it is allowing me to modify innerVar, which is not static and also how can it have this pointer. So if the nested class is static then the method inside or not static implicitly ? Please clarify me.</p>
