# Name einer Instanz einer Klasse IN der Klasse erfahren ??



## Düark (18. Nov 2003)

Verwirrender Titel, was ?

Wenn ich in meinem Programm ein neues Objekt einer meiner Klassen erzeuge:

myClass neue_klasse = new myClass();

Ist es möglich die Klasse so zu implementieren, das ich von Ihr den Namen des erzeugte Objekts bekomme ?

class myClass {
...
// Zum Beispiel so:
String klassenname=getInstanceName(); // So das klassenname="neue_klasse"  
...
} 


Ich hoffe ihr könnt mir helfen ...


----------



## Guest (19. Nov 2003)

Hi Dirki!



> Ist es möglich die Klasse so zu implementieren, das ich von Ihr den Namen des erzeugte Objekts bekomme ?



wofür benötigst du den Namen der erzeugten Objektreferenz? etwa um Dynamische Bindung zu erreichen? Wenn das dein Ziel ist, dann musst du deine Implementierung überdenken. 
Wenn du dynamische Bindung erreichen willst, dann musst du dein Programm so gestalten, dass zur Laufzeit unterschiedliche Objekte an deine Schnittstelle gebunden werden können (Vererbung)... 

Dabei kannst du jeweils Unterklassen Objekte an deine Oberklassenschnittstelle zur Laufzeit zuweisen. Dies entspricht Objektorientierung in ihrer wahren Form. Sonst sind Fallunterscheidungen notwendig, was fehleranfällig und bei weitem weniger flexibel gegenüber Änderungen ist.

Kann nur vermuten, was du mit deiner Frage bewecken möchtest. Hoffe das hilft dir weiter, ansonsten musst du dein Problem genauer spezifizieren!


----------



## Düark (20. Nov 2003)

Es ging darum, das ich ein fertiges Programm verändern wollte.
Darin gab es eine Klasse, die für Buttons zuständig war (abgeleitet von JButton).

Da ich den Code recht unübersichtlich fand, hatte ich die Idee, meine Änderung (ToolTip über dem jeweiligen Button) nur in dieser Buttonklasse zu machen, so das ich in der Klasse praktisch abfrage:

Wenn instanz = "SpeicherButton"
dann ToolTip "Save..."

oder so in der Art...

ABer ich glaube mittlerweile, so ist das nicht möglich...


----------



## Guest (24. Nov 2003)

doch, die Instanz eines Objekts zur Laufzeit abzufagen, das ist möglich! Nicht jedoch den Referenznamen...


```
boolean ObjectName.instanceof(ClassName);
```

das müsste dir helfen!

mfg


----------

