title: Main method in a static inner class.?
body: <p>I've learnt that the only public class in a Java file must also have the main method. However, below you can see the main method inside an inner class instead?
  What is the rule with regard to the main method definition in a source file?</p>
  
  <pre><code>public class TestBed {
      public TestBed() {
          System.out.println("Test bed c'tor");
      }
  
      @SuppressWarnings("unused")
      private static class Tester {
          public static void main(String[] args) {
              TestBed tb = new TestBed();
              tb.f();
          }
      }
  
      void f() {
          System.out.println("TestBed::f()");
      }
  }
  </code></pre>