Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In objektorientierten Programmiersprachen stellt eine Klasse eine nützliche und komfortable Möglichkeit zum Speichern von Daten und Prozeduren dar, die mit einem einzigen Objekt verbunden sind. Sie können z. B. eine Kundenklasse so definieren, dass sie sowohl Informationen über einen Kunden enthält als auch eine Methode zum Berechnen des Alters dieses Kunden:
DEFINE CLASS customer AS CUSTOM
LastName = ""
FirstName = ""
Birthday = { - - }
PROCEDURE Age
IF !EMPTY(THIS.Birthday)
RETURN YEAR(DATE()) - YEAR(THIS.Birthday)
ELSE
RETURN 0
ENDIF
ENDPROC
ENDDEFINE
Die in Objekten gespeicherten Daten, die auf der Customer-Klasse basieren, werden jedoch nur im Arbeitsspeicher abgelegt. Befänden sich diese Daten in einer Tabelle, dann würde die Tabelle auf dem Datenträger abgespeichert werden. Wenn Sie mehrere Kunden bearbeiten müssten, dann würden Sie über die Tabelle auf alle Visual FoxPro-Datenbankverwaltungs-Befehle und -funktionen zugreifen können. Dadurch wären Sie in der Lage, die Informationen schnell zu finden, zu sortieren und zu gruppieren, damit Berechnungen durchzuführen, darauf basierende Berichte und Abfragen zu erstellen usw.
Visual FoxPro ist besonders zum Speichern und Bearbeiten von Daten in Datenbanken und Tabellen geeignet. Es gibt möglicherweise jedoch auch Fälle, in denen Sie Daten in Objekten speichern möchten. Gewöhnlich sind diese Daten nur wichtig, solange Ihre Anwendung läuft. Sie gehören im Normalfall zu einem einzigen Objekt.
In einer Anwendung z. B., die ein Sicherheitssystem enthält, hätten Sie normalerweise eine Tabelle mit den Daten der Benutzer, die auf diese Anwendung zugreifen dürfen. Die Tabelle würde die Benutzerkennung, das Kennwort und die Zugriffsberechtigungsstufe enthalten. Hat sich ein Benutzer angemeldet, dann benötigen Sie die meisten Informationen aus der Tabelle nicht mehr. Sie benötigen lediglich Informationen über den aktuellen Benutzer, und diese Informationen können sehr leicht in einem Objekt gespeichert und bearbeitet werden. Die folgende Klassendefinition startet z. B. einen Anmeldevorgang, wenn ein auf der Klasse basierendes Objekt erstellt wird.
DEFINE CLASS NewUser AS CUSTOM
PROTECTED LogonTime, AccessLevel
UserId = ""
PassWord = ""
LogonTime = { - - : : }
AccessLevel = 0
PROCEDURE Init
DO FORM LOGON WITH ; && assuming you have created this form
This.UserId, ;
This.PassWord, ;
This.AccessLevel
This.LogonTime = DATETIME( )
ENDPROC
* Create methods to return protected property values.
PROCEDURE GetLogonTime
RETURN This.LogonTime
ENDPROC
PROCEDURE GetAccessLevel
RETURN This.AccessLevel
ENDPROC
ENDDEFINE
Im Hauptprogramm Ihrer Anwendung können Sie ein Objekt erstellen, das auf der NewUser-Klasse basiert:
oUser = CREATEOBJECT('NewUser')
oUser.Logon
Innerhalb Ihrer Anwendung können Sie die Informationen aus dem oUser-Objekt abrufen, wenn Sie die Informationen über den aktuellen Benutzer benötigen. Beispiel:
IF oUser.GetAccessLevel( ) >= 4
DO ADMIN.MPR
ENDIF
Siehe auch
Programmgesteuertes Schreiben von Klassendefinitionen | Arrays von Elementen und Objekten | Integration von Objekten und Daten | Erstellung eines Objektverweises | Objektorientierte Programmierung