Mailinglisten-Archive |
Hi Mike, > was ich allerdings nie verstanden habe ist: wieso schreibe ich das zeug in > eine klasse wenn ich eh nicht vorhabe diese als klasse zu instantiieren? > hmm, jetzt geht es tief in die OO (Objekt-Orientierung) rein. Man unterscheidet zwischen statisch und instanz-orientiert. Statische Klassen werden (z.B.) unter Java genutzt, um eine Gruppe von ähnlichen Funktionen zu erstellen, welche keine konkreten Objekte (Instanzen) modifizieren. Z.B. mathematische Funktionen sind im allg. statisch. Instanz-Methoden nutzt du, um Instanzen zu modifizieren. Ein Beispiel: Eine Klasse, die ein 4-Türiges Auto darstellt. Diese Klasse kennt folgende Eigenschaften: - die Farbe vom Auto (instanz-abhängig) - Anzahl der Türen (immer 4, also nicht von der Instanz abhängig, statisch) - Anzahl der Lenkräder (statisch, 1) - Menge Benzin im Tank (instanz-abhängig) Wenn du also eine solche Klasse definierst, brauchst du beim Abfragen der Anzahl der Türen ja keine Instanz des Wagens vor dir zu haben, denn die ist ja statisch. Also ginge ein Aufruf nach dem Motto: 4Tuerer::getNumberOfDoors(). Du kannst allerdings auch Instanz4Tuerer->getNumberOfDoors() machen. Wenn du den Benzin-Pegel ermitteln willst, brauchst du zwingend eine Instanz. Also nur die zweite Variante geht. Dieser Unterschied ist bei PHP nicht fürchterlich wichtig, da man (irgendwer erwähnte es bereits) rein statische Klassen vermeiden und dies über Include-Dateien regeln sollte. Bei Java als rein objekt-orientierter Programmiersprache geht es nicht anders. Aber "Skripts going OO" ist immer noch ein Thema für sich. ;-) Carsten
php::bar PHP Wiki - Listenarchive