003
18.01.2007, 12:59 Uhr
stephanw
localhorst
|
Ich verstehe das Problem nicht ganz. Willst Du zählen, wieviele Form-Objekte es gibt ? Dann erweitere die Klasse Form um eine private statische Zählvariable und zähle diese im Form-Konstruktor hoch. Dazu kommt natürlich die Nummer pro Objekt und eine Funktion zum Abfragen derselben.
Wenn Du das getrennt haben willst für Dreiecke und Rechtecke jeweils separat, dann musst Du das auch separat in diesen Klassen machen.
Ich kenn mich jetzt mit Java nicht so gut aus, aber wenn Du in der Basisklasse (= Form) dennoch getrennt zählen willst, um denselben Code nicht immer wieder in den Ableitungen zu haben, kannst Du sicher auch Folgendes machen (Pseudocode):
Code: |
abstract class Form { private static Hash s_InstanceCounter; // key: string, value: unsigned int
private static unsigned int idForNewObject( Form form ) { s_InstanceCounter[ form.typeName() ] += 1; return s_InstanceCounter[ form.typeName() ]; }
public Form() { this.id = idForNewObject( this ); } }
|
Der konkrete Typ ist egal, er wird nur als eindeutiger Schlüssel für die Hash-Tabelle verwendet. Vielleicht geht ja sowas. -- Reden ist Schweigen und Silber ist Gold. |