Eigenschaften oder Properties Elemente einer Klasse

Object Pascal im Detail - Objektorientierung www.delphi-treff.de 96 var Bauer: TFigur; ... Bauer := TFigur.Create; Bauer.Ziehe‘a‘, 5 ;

4.8.5.2. Attribute oder Felder

Attribute auch Felder genannt sind Variablen, die zu einem Objekt gehören und damit seinen Zustand beschreiben. Attributnamen beginnen in Delphi mit einem großen F Field. Wie auch beim T vor Klassennamen handelt es sich hierbei um eine Vereinbarung. Es gehö t zu „guten Ton , Felder immer im private-Teil einer Klasse zu deklarieren, weil sie den internen Zustand eines Objekts enthalten, der von außen nur über definierte Schnittstellen Methoden verändert werden können sollte. Prinzipiell ist aber auch eine andere Position innerhalb der Klasse möglich. Jedoch müssen die Felddeklarationen vor den Methodendeklarationen stehen. Felde si d i u se e Beispiel o TFigu „FX u d „FY – das F steht für Field, und X und Y sind die Koordinaten des Schachspielfelds.

4.8.5.3. Eigenschaften oder Properties

Eigenschaften sind keine eigenständigen Variablen, sie belegen zur Laufzeit keinen Speicherplatz. Über sie lassen sich Lese- und Schreibzugriffe auf Attribute regeln. Die Eigenschaften sind es auch, die im Objektinspektor angezeigt werden. Eigenschaften werden sinnvollerweise im public- oder published-Abschnitt einer Klasse definiert: type TFigur = class private FX: Integer; FY: Integer; public procedure Ziehex: XKoordinate; y: YKoordinate; function IstZugErlaubtx: XKoordinate; y: YKoordinate: Boolean; property X: XKoordinate read FX; end; Eine Eigenschaft verfügt über eine read- oder eine write-Angabe oder über beide. Dahinter folgt dann entweder direkt der Name des Feldes, auf das lesend oder schreibend zugegriffen werden soll, oder der Name einer Methode, die den Zugriff steuern soll. Wird für read eine Methode verwendet, darf diese keinen Parameter haben und muss einen Rückgabewert liefern, der dem Typ der Eigenschaft entspricht. Bei einem Feld muss dieses natürlich auch den Typ der Eigenschaft haben. Beispiel: Object Pascal im Detail - Objektorientierung www.delphi-treff.de 97 type TFigur = class private FX: Integer; FY: Integer; public function LiesXKoordinate: XKoordinate; property X: XKoordinate read LiesXKoordinate; end; Eine Methode für write muss genau einen Aufrufparameter besitzen, der ebenfalls dem Typ der Eigenschaft entspricht. Beispiel: type TFigur = class private FX: Integer; FY: Integer; public procedure SetzeXKoordinatex: XKoordinate; property X: XKoordinate write SetzeXKoordinate; end; Hinter read und write selbst wird immer nur der reine Methodenname ohne Parameter oder Rückgabewert angegeben. Enthält eine Eigenschaft nur eine read-Angabe, kann sie nur gelesen werden; enthält sie nur eine write-Angabe, kann sie nur geschrieben werden. Properties können nicht als var-Parameter eingesetzt werden, da es sich bei ihnen ja nicht um direkte Zugriffe auf Felder handeln muss; sondern es können ja „nur Methoden dahinter stecken.

4.8.5.4. Objekte erzeugen: Der Konstruktor