Specjalna metoda danej klasy stosowana w programowaniu obiektowym, wywoływana automatycznie podczas tworzenia obiektu, której podstawowym zadaniem jest zwykle zainicjowanie pól, to
A. specyfikator dostępu.
B. obiekt.
C. konstruktor.
D. destruktor.
Pytanie z egzaminu CKE, czerwiec 2019 (arkusz E.14-X-19.06).
Poprawna odpowiedź to konstruktor. Konstruktor jest specjalną metodą klasy uruchamianą automatycznie podczas tworzenia nowego obiektu, czyli instancji tej klasy. Jego zadaniem jest nadanie polom wartości początkowych, ustawienie poprawnego stanu obiektu albo przyjęcie danych przekazanych przy tworzeniu, np. nazwy użytkownika, ceny produktu czy rozmiaru tablicy. Reguła do zapamiętania: konstruktor należy do klasy i zwykle wykonuje się raz - w momencie utworzenia obiektu, bez osobnego ręcznego wywołania jak zwykła metoda. W praktyce użycie konstruktora zmniejsza ryzyko pracy na niezainicjowanych polach. Trzeba odróżniać go od destruktora, który dotyczy końca życia obiektu, a nie jego tworzenia.
W tym pytaniu chodzi o metodę uruchamianą w chwili tworzenia instancji klasy, dlatego właściwym pojęciem jest konstruktor. Obiekt to konkretny egzemplarz klasy, posiadający własny zestaw wartości pól, ale sam w sobie nie jest metodą i nie wykonuje inicjalizacji jako definicja mechanizmu. Destruktor także jest specjalną metodą, jednak działa przy niszczeniu obiektu lub zwalnianiu zasobów, więc odpowiada końcowi życia obiektu, a nie jego utworzeniu. Specyfikator dostępu, taki jak public, private albo protected, określa widoczność pól i metod dla innych fragmentów programu; nie jest metodą i nie uruchamia się automatycznie. Poprawna odpowiedź to konstruktor, ponieważ łączy trzy cechy z treści pytania: należy do klasy, jest wywoływany automatycznie przy tworzeniu obiektu i służy zwykle do inicjalizacji pól. Typowy błąd myślowy polega na pomieszaniu nazw elementów programowania obiektowego: obiektu, metody specjalnej oraz modyfikatora widoczności.