Innere Klassen

Hier werde ich beispielhaft die Inneren Klassen in Java auflisten.

Beispiel

import java.awt.event.*;

public class ClassWithInnerClasses {

  int x;
  static int s;
 
  static class StaticMemberClass {
    void method() {
      s = 4;
      // x = 5;
    }
  }
Statische innere Klassen haben keinen Zugriff auf (Objekt-)Attribute.
Die Variabel x ist hier also nicht sichtbar.
  class MemberClass {
    void method() {
      s = 4;
      x = 5;
    }
  }
Nicht statische innere Klassen haben Zugriff auf statische Variablen und auf (Objekt-)Attribute.
  void method(int i, final int f) {
     int m;
     final int fin = 4;
 
    class LocalClass {
     void method() {
       x = 4;
       s = 5;
       // System.out.println(i + " " + m); 
       System.out.println(f + " " + fin);
     }
   }
Lokale Klassen haben Zugriff wie innere Klassen mit dem Zusatz, dass sie finale Variablen der umliegenden Methode verwenden dürfen.
Die lokalen Variablen i und m sind hier also nicht verwendbar!
    Object refAufAnonymeKlasse = new WindowAdapter() {
      public void WindowClosing(WindowEvent we) {
        System.exit(0);
      }
    };
Lokale anonyme Klassen haben Zugriff wie andere lokale Klassen.
  } // end method()
} // end class