Class/de

From Lazarus wiki
Revision as of 10:10, 16 September 2012 by Olaf (talk | contribs)
Jump to navigationJump to search

Deutsch (de) English (en) français (fr) русский (ru)


Speicherbedarf: entspricht der Grösse der Klasse

Eine Klasse ist ein strukturierter Datentyp der sich aus folgendem zusammensetzen kann:

  • Variablen
  • Konstanten
  • Konstruktor
  • Destruktor
  • Initialisierungsteil
  • Funktionen
  • Pozeduren
  • Eigenschaften


Eine Klasse kann:

  • eine Basisklasse sein, d. h. es gibt keine Klasse von der sie abgeleitet wurde.
  • eine abgeleitete Klasse sein.
    • Eine abgeleitete Klasse kann niemals von mehr als einer Klasse (Elternklasse) abgeleitet sein.
    • Eine abgeleitete Klasse erbt (übernimmt) die Eigenschaften, Funktionen und Prozeduren der Elternklasse.
    • Eine abgeleitete Klasse kann die geerbten Eigenschaften, Funktionen und Prozeduren überschreiben bzw. überladen.
  • eine Elternklasse sein
    • Eine Elternklasse gibt ihre Eigenschaften, Funktionen und Prozeduren an die abgeletete Klasse weiter.
    • Eine Elternklasse gibt alle von ihrer Elternklasse geerbten Eigenschaften, Funktionen und Prozeduren an die abgeleitete Klasse weiter.


Beispiel für die Erstellung einer Basisklasse:

type
  TTest = class
  private
    { private declarations }
  public
    { public declarations }
  end;


Beispiel für die Erstellung einer abgeleiteten Klasse:

type
  TTest = class(TObject)
  private
    { private declarations }
  public
    { public declarations }
  end;


Beispiel wie die Deklaration einer abgeleiteten Klasse aussehen kann:

type
   TTest = class(TObject)
   private
      FSomeVar: integer;
   public
      constructor Create; overload; // Überlädt den Konstruktor der Elternklasse
      constructor Create(Args: array of integer); overload;
      destructor Destroy; override; // Überschreibt den Konstruktor der Elternklasse
      function GetSomeVar;
      procedure SetSomeVar(newvalue: integer);
   published
      property SomeVar: integer read GetSomeVar write SetSomeVar default 0;
   end;



--Olaf 07:53, 16 September 2012 (UTC)