title: How does the lambda expression access to class fields?
body: <pre><code>public class ClickButton extends JButton {
     private int clicks = 0;
  
     public ClickButton() {
      super(&quot;0&quot;);
  
      this.addActionListener (e -&gt; {
          ++clicks ;
          this.setText(clicks + &quot;&quot;);
          });
     }
  }
  </code></pre>
  <p>How is the lambda expression, inside of addActionListener method, able to access the &quot;clicks&quot; field of my class? Is this because, I can consider Lambda-Expression as a very short initialisation of an inner class, which can of course access this field?</p>