Anonyme Methode - warum hier kein Compilerfehler

Status
Nicht offen für weitere Antworten.

egrath

Aktives Mitglied
Hallo,

könnte mir bitte jemand erklären, warum folgender Code keinen Fehler vom Compiler wirft:

Code:
    private Point position_;
    private boolean inMove_;
    
    public DrawPanel()
    {
        position_ = new Point( 0, 0 );
        
        this.addMouseListener( new MouseAdapter()
        {
            @Override public void mousePressed( MouseEvent e )
            {
                System.out.println( "Mouse pressed " );
                inMove_ = true;
            }
            
            @Override public void mouseReleased( MouseEvent e )
            {
                System.out.println( "Mouse released" );
                inMove_ = false;               
            }           
        } );
    }

Meinem verständnis nach müsste in den anonymen Methoden eine Zuweisung an die Instanzvariable inMove_ nicht möglich sein, da die anonyme Methode eine Unterklasse von MouseAdapter repräsentiert - in deren Scope die Instanzvariable "inMove_" nicht verfügbar sein sollte. Oder?

Danke und Grüsse, Egon
 
innere klassen können auf die instanz ihrer äußeren klasse zugreifen, und dein mouseadapter ist ne normale innere-nicht-statische klasse :toll:
 
Hallo Roar,

Danke für die Info - dein Satz sagt alles aus was ich wissen wollte.

Grüsse, Egon
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben