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