Freigeben über


Klassen in Visual FoxPro

Alle Eigenschaften, Ereignisse und Methoden eines Objekts werden in der Klassendefinition angegeben. Außerdem besitzen Klassen folgende Merkmale, wodurch sie sich besonders gut zum Erstellen von wiederverwendbarem, leicht zu wartenden Code eignen:

  • Kapselung
  • Unterklassen
  • Vererbung

Verstecken nicht notwendiger Komplexität

Wenn Sie Ihr Büro mit einem Telefon ausstatten, ist es von zweitrangigem Interesse zu wissen, wie das Telefon intern einen Anruf erhält, Verbindungen zu elektronischen Schalttafeln aufbaut, beendet oder die gedrückten Zifferntasten in elektronische Signale umwandelt. Sie können den Hörer abnehmen und die entsprechenden Nummern wählen, um mit der angewählten Person sprechen zu können. Die Komplexität des Verbindungsaufbaus bleibt unsichtbar. Der Vorteil, die inneren Einzelheiten eines Objekts ignorieren zu können und das Hauptaugenmerk auf die jeweils benötigten Aspekte des Objekts zu lenken, wird Abstraktion genannt.

Die Kapselung, die die Zusammenfassung des Codes von Methoden und Eigenschaften in einem Objekt mit sich bringt, trägt zur Abstraktion bei. Zum Beispiel können sowohl die Eigenschaften, durch die die Elemente eines Listenfeldes ermittelt werden, als auch der Code, der ausgeführt wird, sobald ein Element aus dieser Liste ausgewählt wurde, in ein einziges Steuerelement eingeschlossen werden. Dieses kann dann in ein Formular eingefügt werden.

Leistungsfähigkeit bestehender Klassen ausnutzen

Eine Unterklasse kann die gesamte Funktionalität einer vorhandenen Klasse und darüber hinaus zusätzliche Steuerelemente oder sonstige gewünschte Funktionalität besitzen. Ist Ihre Klasse ein einfaches Telefon, dann können Sie Unterklassen erstellen, die die gesamte Funktionalität des Originaltelefons besitzen. Sie können die Unterklassen auch mit beliebigen von Ihnen gewünschten, speziellen Merkmalen ausstatten.

Das Erstellen von Unterklassen ist eine Möglichkeit zum Verringern des Umfangs des von Ihnen zu schreibenden Codes. Sie können mit der Definition eines Objekts beginnen, das Ihren Wünschen annähernd entspricht, und diese später anpassen.

Rationalisierte Pflege von Code

Durch Vererbung spiegeln sich alle Änderungen, die Sie in einer Klasse vornehmen, in allen auf dieser Klasse basierenden Unterklassen wider. Diese automatische Aktualisierung erspart Ihnen Zeit und Mühe. Wenn beispielsweise ein Telefonhersteller die Telefone von Wahlscheiben auf Wahltasten umrüsten möchte, dann würde es ihm viel Arbeit ersparen, wenn er lediglich das zugrunde liegende Schema verändern müsste und alle zuvor nach diesem Schema gefertigten Telefone automatisch das neue Merkmal besitzen würden.

Eine Vererbung kann nicht bei Hardware erfolgen, jedoch steht Ihnen diese Fähigkeit bei Software zur Verfügung. Wenn Sie in einer Klasse einen Fehler feststellen, müssen Sie den Code nicht in allen Unterklassen korrigieren. Sie können den Fehler in der Klasse beheben, und diese Änderung wird dann in allen Unterklassen dieser Klasse durchgeführt.

Container und Nicht-Container

Die beiden Haupttypen der Visual FoxPro-Klassen, und im weteren Sinne der Visual FoxPro-Objekte, sind Containerklassen und Steuerelementklassen.

Containerklassen

Container können andere Objekte enthalten und ermöglichen den Zugriff auf die in ihnen enthaltenen Objekte. Wenn Sie beispielsweise eine Containerklasse erstellen, die aus zwei Listenfeldern und zwei Befehlsschaltflächen besteht, und dann ein auf dieser Klasse basierendes Objekt zu einem Formular hinzufügen, kann jedes einzelne Objekt sowohl zur Laufzeit als auch zur Entwurfszeit verwendet werden. Sie können die Position der Listenfelder oder die Beschriftungen der Befehlsschaltflächen leicht ändern. Sie können zum Steuerelement auch während der Entwurfszeit Objekte hinzufügen; so können Sie beispielsweise Beschriftungen hinzufügen, um die Listenfelder zu kennzeichnen.

In der folgenden Tabelle finden Sie eine Liste aller Komponenten, die eine Containerklasse enthalten kann.

Container Enthalten
Befehlsschaltflächen-Gruppen Befehlsschaltflächen
Container Beliebige Steuerelemente
Steuerelement (Control) Beliebige Steuerelemente
Benutzerdefiniertes Objekt (Custom) Beliebige Steuerelemente, Seitenrahmen, Container, benutzerdefinierte Objekte
Formularsätze Formulare, Symbolleisten
Formulare Seitenrahmen, beliebige Steuerelemente, Container, benutzerdefinierte Objekte
Datenblattspalten Kopfzeilen und alle anderen Objekte außer Formularsätze, Formulare, Symbolleisten, Zeitgeber und andere Spalten
Datenblätter Datenblattspalten
Optionsgruppen Optionsfelder
Seitenrahmen Seiten
Seiten Beliebige Steuerelemente, Container, benutzerdefinierte Objekte
Projekt Dateien, Server
Symbolleisten Beliebige Steuerelemente, Seitenrahmen, Container

Steuerelementklassen

Steuerelementklassen sind vollständiger eingekapselt als Containerklassen, sie sind aus diesem Grund jedoch auch weniger flexibel. Steuerelementklassen haben nicht die AddObject-Methode.

Siehe auch

Objektorientierte Programmierung | Klassen und Objekte: Die Bausteine einer Anwendung | Vorbereitung der Klassenerzeugung | Erstellen von Klassen | Ändern einer Klassendefinition | Erstellen einer Unterklasse zu einer Klassendefinition | Funktionsweise des Klassen-Designers | Schützen und Ausblenden von Klassenelementen | Angeben der Entwurfszeit-Darstellung | Erstellen, Kopieren und Entfernen von Klassenbibliotheksdateien | Hinzufügen von Klassen zu Formularen | Außer Kraft setzen der Standardeinstellungen von Eigenschaften | Verweisen auf Objekte in der Containerhierarchie | Setzen von Eigenschaften | Aufrufen von Methoden | Ereignisrückmeldung