Właściwość, podobnie jak pole, definiuje atrybut obiektu. Jednak podczas gdy pole jest zaledwie zasobnikiem przechowującym wartość parametru, który może być odczytywany i modyfikowany, właściwość posiada specyficzne czynności skojarzone z odczytem i modyfikacją swej zawartości. Właściwość umożliwia kontrolę nad dostępem do atrybutu obiektu i udostępnia możliwość jego przeliczania.
Deklaracja właściwości specyfikuje jej nazwę i typ, oraz dołącza, co najmniej jedną specyfikację dostępu. Składnia jest następująca:
property propertyName[indexes]: type index integerConstant specifiers;
gdzie:
Właściwości są definiowane przez ich specyfikatory dostępu. Inaczej niż pola, właściwości nie mogą stanowić parametrów przekazywanych przez zmienną, ani nie można do nich stosować operatora @. Powodem jest to, że właściwość niekoniecznie egzystuje w pamięci. Może, na przykład, mieć metodę read pobierającą wartość z bazy danych lub generować wartość losową.
Pokrywanie i redeklarowanie właściwości