Co to jest domyślny konstruktor?
Domyślny konstruktor to specjalistyczna metoda, która tworzy i inicjuje obiekt w programowaniu obiektowym. Istnieje wiele rodzajów konstruktorów, ale domyślny konstruktor musi spełniać jedno z dwóch konkretnych kryteriów, oprócz tworzenia i inicjowania obiektu. Musi albo nie mieć parametrów, w takim przypadku może być również nazywany konstruktorem zerowym lub musi przypisywać wartości domyślne do wszystkich parametrów, które ma możliwość ustawienia. Niektóre języki komputerowe domyślnie określają domyślny konstruktor zerowy, jeśli programista wcale nie określa konstruktora. Po napisaniu dowolnego typu konstruktora domyślny konstruktor zerowy nie jest już określony i musi być jawnie napisany, jeśli to konieczne.
W przypadku języków komputerowych, które umożliwiają dziedziczenie obiektowe, domyślne konstruktory w podklasach muszą być dokładnie połączone z konstruktorami w nadklasach. Konstruktory podklasy zawsze muszą wywoływać konstruktory nadklasy przed wykonaniem jakichkolwiek czynności specyficznych dla podklasy. W niektórych językach, takich jak Java®, konstruktor podklasy domyślnie wywołuje domyślny konstruktor zerowy nadklasy. Jeśli domyślny konstruktor zerowy nadrzędnej klasy nie istnieje, obiekt podklasy nie może zostać poprawnie zbudowany. W tym przypadku podklasy mogą nadal mieć domyślny konstruktor dowolnego typu, ale dostępny konstruktor nadklasy musi zostać poprawnie wywołany, być może poprzez przekazanie jej wartości domyślnych unikalnych dla podklasy.
Niejawne generowanie domyślnego konstruktora zerowego ma tę zaletę, że zmniejsza liczbę metod, które programiści muszą określić i udokumentować, ale ma również tę wadę, że utrudnia utrzymanie i zrozumienie kodu. Niektórzy programiści uważają pominięcie domyślnego konstruktora za złą praktykę, podczas gdy inni nie. Nic nie stoi na przeszkodzie, aby indywidualny programista zastosował się do którejkolwiek z tych metod programowania, dlatego włączenie domyślnego zerowego konstruktora do kodu jest w dużej mierze stylistycznym wyborem programisty. Jeśli dołączony jest konstruktor, większość szkół myślenia nakazuje komentowanie i dokumentowanie, tak jak każdy inny konstruktor lub metoda.
Każdy domyślny konstruktor może mieć dołączone modyfikatory dostępu, co czyni go publicznym, chronionym lub prywatnym. Daje to konstruktorowi określone umiejętności w zależności od klasy, w której jest określony. Publiczny domyślny konstruktor może zostać użyty do utworzenia nowego obiektu z innej klasy, podczas gdy chroniony konstruktor można wywołać tylko z jego własnej klasy i dowolnej podklasy. Chronione domyślne konstruktory są często postrzegane w hierarchii dziedziczenia. Konstruktorzy prywatni są zwykle zatrudniani tylko w samodzielnych klasach, w których można wywołać pewien rodzaj metody fabrycznej, a nie programistę.