Schritt für Schritt zur klassenbasierten Programmierung

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1430
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Schritt für Schritt zur klassenbasierten Programmierung

Beitrag von fliegermichl »

Guten Morgen zusammen,

da das Thema schon öfter hochkam, will ich mal versuchen, die klassenbasierte Programmierung in einer Schritt für Schritt Anleitung anfängerfreundlich zu schildern.
Man kann eine Klasse am ehesten mit einem Record vergleichen. Der Hauptunterschied ist offensichtlich aber der, daß man eine Variable vom Typ des Records direkt verwenden kann, wohingegen eine Klasseninstanz (so wird eine Klassenvariable genannt) zuerst erzeugt und später wieder freigegeben werden muß.

Code: Alles auswählen

type
 RBeispiel = record
  Name : string;
  Alter : integer;
 end;
Hier wurde der Typ eines Records definiert, der einfach verwendet werden kann.

Code: Alles auswählen

var
 Beispiel : RBeispiel;
begin
  Beispiel.Name := 'Karl';
  Beispiel.Alter := 53;
end;
Jetzt machen wir das gleiche mit einer Klasse

Code: Alles auswählen

type
 TBeispiel = class
  Name : string;
  Alter : integer;
 end;
Um die Klasse verwenden zu können, muß ebenfalls eine Variable vom Typ TBeispiel angelegt werden.

Code: Alles auswählen

var Beispiel : TBeispiel;
begin
 Beispiel := TBeispiel.Create;
 Beispiel.Name := 'Karl';
 Beispiel.Alter := 53;
 Beispiel.Free;
end;
Bis hierhin scheinen die Klassen nur Nachteile zu haben. Während ich den Record einfach verwenden kann, muß die Klasse erst erzeugt werden, bevor sie verwendet werden kann.
und damit nicht genug, muß die Klasse auch noch wieder freigegeben werden.
Warum ist das so?

Dazu mehr im nächsten Beitrag.

Antworten