Ich hole mal ein bisschen aus: wenn Du Felder einer Klasse nach außen hin bekannt machen willst, gewährst Du keinen direkten Zugriff auf sie, sondern definierst Schnittstellen (Getter- und Settermethoden). Die Variable wird dann auch nicht als Variable angesprochen, sondern als Eigenschaft (property). Mal ein Beispiel (Feld soll nur einen Wert zwischen 1 und 1000 annehmen können):
Delphi-Quellcode:
type
TMyClass = class
...
private
FFeld: integer;
procedure SetFeld(value: integer); //Setter
function GetFeld: integer; //Getter
...
public
property Feld: integer read GetFeld write SetFeld;
...
end;
procedure TMyClass.SetFeld(value: integer);
begin
if (value in [1..1000]) then
FFeld := value;
end;
function TMyClass.GetFeld: integer;
begin
Result := FFeld;
end;
So funktioniert
OOP