Re: Was macht dieses "class"-Konstrukt
15. Sep 2005, 13:52
Eine normale Methode bekommt als ersten Parameter Self uebergeben das auf die Instanz des Objektes zeigt fuer das die Methode aufgerufen wurde.
Eine class-Methode bekommt in Self die Klasse selbst uebergeben. Das ist nichts anderes als wieder ein Objekt das die Klasse beschreibt.
Da keine Objektinstanz uebergeben wird, kann die class-Methode auch ohne ein instanziiertes Objekt aufgerufen werden.
Die Einsatzmoeglichkeiten sind vielfaeltig.
Man kann Funktionen als Methoden implementieren, ohne je eine Objektinstanz zu benoetigen.
Viel wichtiger ist es aber as man Objekte der Klasse instanziieren kann (die betrachtete Klasse heisse TMyClass).
Man ruft einfach Self.Create auf und da dies ja ein instanziiertes Klassenobjekt TMyClass ist, bekommt man ein instanziiertes Objekt.
Dazu hat TMyClass einfach eine Methode Create statt eines Konstruktors.
|