Vorlesung Informatik 2 - Teil A: Java Kurs

4.3 Anonyme Klassen

Manchmal schreibt man eine Klasse, von der es nur ein einziges Objekt geben soll, oft sind das Listener Klassen. In diesem Fall kann man eine anonyme Klasse definieren, wobei gleichzeitig ein Objekt erzeugt wird: 

public class Beispiel extends JPanel{
    private String meldung ="Danke!";
    public Beispiel(){
       JButton knopf = new JButton("Klick");
        ActionListener knopfListener = new ActionListener(){
                          public void actionPerformed(ActionEvent e){
                                   JOptionPane.showMessageDialog(Beispiel.this, meldung);
                        }
         };

       knopf.addActionListener(knopfListener);
   }
}

Der rot markierte Teil ist die anonyme Klasse, wie man am new sieht wird gleichzeitig ein Objekt dieser Klasse erzeugt.  Die Klasse implementiert ActionListener und bekommt einen Default-Konstruktor. 

Anonyme Klassen sind innere Klassen!

Diese Konstruktion ähnelt stark der Definition von Klassen in JavaScript.

Lehrvideo  (YouTube)