Arten von Klassen

ceving

Aktives Mitglied
In dem FAQ-Artikel "Arten von Klassen" fehlt ein Beispiel für innere statische Klassen. Die Klassen verhalten sich wie Top-Level-Klassen und erleichtern manchmal logisch zusammenhängende Klassen auch an der gleichen Stelle zu speichern. Hier ein abgespecktes Beispiel aus meinem aktuellen Projekt:

Java:
/**
 * Boolean conditions.
 */
class Boolean extends Condition
{
  String operator;

  Boolean (String operator)
  {
    this.operator = operator;
  }

  /**
   * Boolean conditions with one argument.
   */
  static class Unary extends Boolean
  {
    Condition a;

    Unary (String operator, Condition a)
    {
      super (operator);
      this.a = a;
    }
  }

  /**
   * Boolean conditions with two arguments.
   */
  static class Binary extends Boolean
  {
    Condition a;
    Condition b;

    Binary (String operator, Condition a, Condition b)
    {
      super (operator);
      this.a = a;
      this.b = b;
    }
  }
}

Die Boolean-Klassen können dann folgendermaßen verwendet werden.

Java:
new Boolean.Unary ("NOT", a);
new Boolean.Binary ("AND", a, b);
new Boolean.Binary ("OR", a, b);

Der Code stammt aus einer Formatierung von SQL-Ausdrücken.
 
Nennt sich "static nested class" oder "statisch geschachtelte Klasse" ... wird genannt. Aber anhand der Definition hätte ich nicht drauf schließen können, was gemeint ist.
 

Zurück
Oben