title: Java scoping rules and inner classes
body: <p>All the crazy Java scoping rules are making my head spin and the <strong>public static void</strong> nonsense isn't helping matters. So far all the programming languages I have used either lexical scoping or some approximation of it without any access modifiers, i.e. inner stuff captures outer stuff and has access to the outer stuff as long as the inner stuff exists.</p>
  
  <p>So how do I make sense of the scoping rules for inner classes in Java? Do they get access to variables declared in the outer class or is there some weird edge cases I have to worry about because of all the <strong>public static private</strong> stuff floating around?</p>