Strict private
Adam Boduch
strict private - słowo kluczowe języka Delphi
Konstrukcja strict private
związane jest z tematyką programowania obiektowego, a konkretnie hermetyzacją. Metody czy pola umieszczone w sekcji strict private są określone jako ściśle chronione, dostęp do nich z poziomu innej klasy jest niemożliwy.
Konstrukcja ta dostępna jest jedynie w Delphi 8 i Delphi 2005
type
TMoja = class
strict private
procedure Main;
end;
var
Moja : TMoja;
begin
Moja := TMoja.Create;
Moja.Main; // <-- tu jest błąd
end
Powyższy przykład pokazuje niemożność uzyskania dostępu do metody Main z klasy TMoja. Kompilator zgłosi błąd: [Error] WinForm2.pas(101): Cannot access private symbol TMoja.Main. Wszystko dzięki temu, że metoda Main
znalazła się w sekcji strict private
, do której dostęp spoza klasy jest zabroniony.
Sekcja Private oraz strict private różni się tym, iż metody zadeklarowane w tej pierwszej są widoczne na zewnątrz klasy, jedynie w obrębie modułu, w jakim znajduje się klasa.
Nie można używać słowa kluczowego strict w połączeniu z public albo z published. Taki błąd spowoduje wyświetlenie komunikatu: [Error] WinForm2.pas(93): PRIVATE or PROTECTED expected.
Poziomy strict private oraz strict protected zostały wprowadzone ze względu na przystosowanie Delphi do specyfikacji CLS. Programując aplikacje działające dla Win32 w Delphi 2005, projektant także może używać tych poziomów dostępu.
Zobacz też: