Zapouzdřenost
Systém
je tvořen z jednotlivých objektů. Objekt je tvořen lokálními datovými strukturami a procedurami/funkcemi, které jediné zabezpečují přístup k datům. Nazývají se metody. Zapouzdřenost též slouží k identifikaci: objekt ví, jaká data obsahuje, jaký je jejich formát a jaké je jejich jméno.V souvislosti se zapouzdřením hovoříme o granularitě. Granularita objektů vyjadřuje, jak velké jsou objekty. (Příklad: jsou-li objektem jen velké datové struktury, pole, záznamy - jde o velkou granularitu. Jsou-li za samostatné objekty brány např. i znaky a čísla, jde o jemnou granularitu).
Často se do souvislosti se zapouzdřeností dává posílání
zpráv: v extrémním případě objekty vůbec nekomunikují přímo, tzn. nevolají navzájem své metody, ale jen nepřímo - navzájem si posílají zprávy. V takovém případě objekt koná činnost na základě nějaké události, např. události, že mu přišla určitá zpráva. V takovém případě hovoříme o událostmi řízeném programování (event-driven programming).Zapouzdřenost je v prostředí Delphi realizována dvěma mechanismy:
Není-li uveden žádný specifikátor, defaultně se rozumí public. Podrobnosti o specifikátorech viditelnosti zájemce nalezne v učebnici na str. 78 a 80. RTTI je popsána na straně 96.
Povšimněte si, že při deklaraci třídy je vždy potřeba datové prvky zapsat před metodami; toto pořadí se při použití specifikátorů přístupu modifikuje tak, že platí v každé sekci zvlášť. To znamená, že v každé sekci je třeba zapsat data té sekce před metodami sekce.
Důležité také je, že Delphi si v řadě objektových tříd (typické to je u formulářů Form) poznamenávají určité údaje ještě před specifikátory public či private. Lze vypozorovat, že např. u třídy Form to jsou komponenty a hlavičky metod, které se během návrhu vkládají do formuláře. Tyto údaje si obhospodařují Delphi samy a
programátor do nich nesmí nijak zasahovat, resp. pokud zasahuje, nesmí se pak ničemu divit.