OOP
 BESCHREIBUNG:
     OOP steht fuer "Object-Orientierte Programmierung":

     Wenn du weisst, wie man in einer prozeduralen Sprache programmiert
     (C, PASCAL, BASIC), dann hast du bereits viele der Faehigkeiten, die
     noetig sind um effektiv in LPC zu Programmieren. Die Hauptfaehigkeit,
     die du brauchen wirst, ist die Begabung deine Ideen in eine Reihe von
     Schritten zu unterteilen, so dass der Computer diese fuer dich
     ausfuehren kann.

     LPC ist aber auch eine (imperative, strukturierte) objektorientierte
     Sprache. OOP haelt dazu an, sich zuerst um die Daten zu kuemmern und
     dann um die Methoden mit denen diese Daten manipuliert werden:
     Ein Spieler ist zuerst einmal ein Haufen von Attributen und Punkten
     und seinem Namen, wie auf diese eingewirkt werden kann wird danach
     geklaert. Ein Spielerobjekt kommuniziert und kooperiert mit vielen
     anderen Objekten hier.

     Im Folgenden sind einige der Kriterien objektorientierter Programmierung
     aufgefuehrt:

     Klassen:
	Eine Klasse beschreibt das Verhalten einer Gruppe gleichartiger
	Objekte. Beispielsweise kann man Lebewesen als eine Klasse ansehen,
	weil man alle Objekte in Lebewesen und nicht-Lebewesen einteilen
	kann. Hat man einen konkretes Monster und einen konkreten Spieler in
	einem Raum, dann sind dies Objekte (Instanzen). Man kann von einer
	Menge gleichartiger Objekte sagen, dass sie zu ein- und derselben
	Klasse gehoeren. 

     Abstraktion:
	Jedes Objekt im System verkoerpert als abstraktes Modell einen
	"Arbeiter", der Auftraege erledigen kann, seinen Zustand berichten
	und aendern kann und mit den anderen Objekten im System kommunizieren
	kann, ohne offen zu legen, wie diese seine Faehigkeiten implementiert
	sind.
	[So kann man einem Objekt den Auftrag Defend(1000, DT_FIRE, ...)
	 geben. In MG werden lebende Objekte diesen Auftrag durch Aenderung
	 ihres Zustandes - LP-Abzug oder Magiereaktion - erfuellen.]

     Kapselung
	Auch das "Verbergen von Information" genannt, sorgt K. dafuer, dass
	Objekte den internen Zustand anderer Objekte nicht in unerwarteter
	Weise aendern koennen; nur den eigenen Methoden eines Objektes soll
	es erlaubt sein, auf den internen Zustand direkt zuzugreifen. Alle
	Sorten von Objekten praesentieren nach aussen Schnittstellen (man
	properties), die darueber bestimmen, wie andere Objekte mit ihnen
	wechselwirken koennen.
	[Siehe vor allem man properties]
	
     Polymorphie
	Zeiger zu Objekten koennen es mit sich bringen, dass bei der Auswahl
	eines konkreten Objektes seine Klasse (sein Typ) nicht offensichtlich
	ist. Trotzdem werden Nachrichten an so selektierte Objekte korrekt
	der tatsaechlichen Klasse zugeordnet. Wenn diese Zuordnung erst zur
	Laufzeit aufgeloest wird, dann wird dieses Verhalten Polymorphismus
	(auch: spaete Bindung oder dynamische Bindung) genannt.
	[In LPC ist dynamische Bindung der Standard. Ueberschreibt man also
	 in einem NPC die(), dann wird auf jeden Fall die neue Methode
	 aufgerufen, wenn der NPC aus do_damage() heraus in sich die() ruft.]

     Vererbung
	Organisiert und erleichtert Polymorphie, indem neue Objekte definiert
	und erzeugt werden koennen, die Spezialisierungen schon existierender
	Objekte sind. Solche neuen Objekte koennen das vorhandene Verhalten
	uebernehmen und erweitern, ohne dass dieses Urverhalten neu
	implementiert werden muss. Typischerweise wird das dadurch erreicht,
	dass Objekte zu Klassen und zu Hierarchien von Klassen gruppiert
	werden, in denen sich die Gemeinsamkeiten im Verhalten ausdruecken.
	[Siehe man vererbung]

 SIEHE AUCH:
     objekte, inheritance, goodstyle

 22. Maerz 2004 Gloinson
