Also die erste Frage ist einfach zu beantworten:
Wie funktionieren Klassenmethoden?
Klassenmethoden sind Methoden, die nicht im Kontext eines Objektes ausgeführt werden. Eine Klassenmethode gehört zwar zu einer Klasse, kann aber nicht auf Felder und Methoden einer Instanz (@choose: eines Objekts
) zugreifen, da der Methode ja kein Objekt zugeordnet ist.
In Sprachen wie C# oder Java macht das ganze Konzept auch viel Sinn, denn dort gibt es auch Klassenfelder. Angenommen, ich habe eine Klasse, die ein Auto beschreibt, dann habe ich Objektfelder und -methoden, die ein konkretes Exemplar eines Autos beschreiben, und die Klasse selbst, die nun allgemeine Informartionen über das Auto darstellt, z.B. die Zahl der gebauten Autos. Dort gibt es dann z.B. auch eine Methode, um die Anzahl der gebauten Autos zu erhöhen. Hier ist jede Klasse auch quasi ein Objekt, vereinfacht gesagt.
In der
DL, in der es leider keine Klassenfelder gibt, haben für m ich Klassenmethoden eigentlich nur Sinn gemacht, wenn ich mehrere autonome Prozeduren oder Funktionen hab, die keine gegenseitigen Abhängigkeiten haben, aber doch inhaltlich irgendwie zusammengehören. Die pack ich dann in eine Klasse, die Klasse dient hier aber nur als Container, so wie es die
Unit bei normalen Prozeduren täte.