Bei einer Property hast Du mehrere Möglichkeiten:
Delphi-Quellcode:
private
FBlubb: TBlubb;
...
public
property Blubb: TBlubb read FBlubb write FBlubb;
Die einfachste: indirekter Zugriff auf das private Feld FBlubb sowohl lesend als auch schreibend.
Delphi-Quellcode:
private
FBlubb: TBlubb;
procedure SetBlubb(const Value: TBlubb);
...
public
property Blubb: TBlubb read FBlubb write SetBlubb;
Lesender Zugriff immer noch indirekt, schreibender über einen Setter. Im Setter kann man Gültigkeitsprüfungen vornehmen und entsprechend reagieren.
Delphi-Quellcode:
private
FBlubb: TBlubb;
function GetBlubb: TBlubb;
procedure SetBlubb(const Value: TBlubb);
...
public
property Blubb: TBlubb read GetBlubb write SetBlubb;
Lesender Zugriff über den Getter, schreibender über den Setter. Im Sinne der
OOP ist dies der "amtliche" Weg (gerade in der Hinsicht auf andere Sprachen als Delphi). Ich persönlich spare mir eine Getter-Methode aus Faulheitsgründen, da sie IMO keinen echten Mehrwert bringt.
[edit] Nachtrag: durch Weglassen von write bzw. read kannst Du eine Property zusätzlich noch als Read-/Write-Only definieren [/edit]