Klasy i obiekty


Klasa, lub typ klasowy, definiuje strukturę składającą się z pól, metod i właściwości. Przypadki reprezentujące typ klasowy nazywane są obiektami. Pola metody i właściwości klas nazywane są ich komponentami lub składnikami.

Obiekty są dynamicznie alokowanymi blokami pamięci, których struktura jest zdeterminowana przez ich typ klasy. Każdy obiekt ma unikalną kopię każdego pola zdefiniowanego w klasie, ale wszystkie przypadki danej klasy (obiekty) współdzielą te same metody. Obiekty są kreowane i niszczone (usuwane z pamięci) przez specjalne metody zwane konstruktorami i destruktorami.

Zmienna typu klasowego jest wskaźnikiem wskazującym na obiekt. Stąd więcej niż jedna zmienna może wskazywać na ten sam obiekt. Jak inne wskaźniki (pointer), zmienne typu klasowego mogą mieć wartość nil. Nie można odwoływać się do obiektów poprzez użycie notacji właściwej dla zmiennych wskazywanych. Na przykład: SomeObject.Size:=100 przypisuje wartość 100 do właściwości Size obiektu, który reprezentowany jest za pośrednictwem zmiennej SomeObject; nie można użyć notacji: SomeObject^.Size:=100.