# Anonymous Classes und UML



## Evolver (27. Mai 2007)

Also ich habe Fragen zu anonymen Klassen.

```
AnyExistingClass myObject = new AnyExistingClass()
{
    // "Erweiterungen" der existierenden Klasse
}
```

1. Gibt es noch andere Formen außer der obigen, anonyme Klassen zu definieren?
2. Sehe ich es richtig, dass eine anonyme Klasse immer eine Superklasse benötigt (das wäre hier die fiktive Klasse _AnyExistingClass_)? Oder kann sie auch irgendwie "frei" definiert werden?
3. Ich arbeite ja an einem Reverse-Engineering-Projekt. Deshalb: Wie würdet ihr die anonyme Klasse im Klassendiagramm darstellen? Garnicht? Oder als von der Basisklassen erbend mit einem künstlichen Namen? Oder anders?


----------



## Roar (27. Mai 2007)

1. nein
2. jede klasse braucht eine superklasse, damit erübrigt sich das wohl 
3. eine darstellung im klassendiagramm wär sinnlos


----------



## Evolver (27. Mai 2007)

> 2. jede klasse braucht eine superklasse


Nungut, aber aber bei expliziten Klassendefinitionen kann ich mir eine explizite Angabe auch ersparen, bzw. könnte es sich bei _AnyExistingClass_ auch um ein Interface handeln, das implementiert wird. Daher die Frage.




> 3. eine darstellung im klassendiagramm wär sinnlos


Könntest du bitte erläutern, warum du dieser Meinung bist? Gerade falls es sich um eine Implementierung eines Interfaces handelt - wäre dann eine Darstellung nciht wichtig?


----------



## Roar (27. Mai 2007)

2. weil dann automatisch von Object abgeleitet wird, das gilt auch für anonyme klassen. eine anonyme klasse die von object erbt/ kein interface implementiert macht aber auch wenig sinn 
3. nein: was sollte jemand anderes denn mit der information anfangen, dass bei dir irgendwo eine anonyme klasse steht. entweder die anonyme klasse ist eine normale membervariable oder innerhalb einer methode. Beim ersteren wird es wie jeder andere member auch angezeigt und beim letzteren ist es ein implementierungsdetail was niemand anderes wissen will/möchte/darf/braucht. du gibst ja auch keine lokalen variablen in einem klassendiagramm an


----------



## Evolver (28. Mai 2007)

Wäre aber eine UML-Modell ohne die anonyme Klasse nicht unvollständig? Bleiben wir bei dem implementierten Interface:







Würde ich die fehlende anonyme Klasse nicht ein unvollständiges Modell darstellen: Ein benutztes Interface ohne, dass es irgendwo implementiert wird?

_[...] Bei genauerer Überlegung frage ich mich gerade, ob die erste Darstellung tatsächlich das gleiche ausdrückt, wie die zweite, oder viel allgemeiner ist und keinen direkten Zusammenhang zwischen AnonymeKlasse und BenutzerKlasse herstellt?_


----------



## Evolver (30. Mai 2007)

Hm, keine weiteren Stellungnahmen mehr dazu???


----------

