Jesteś tutaj: Home > Informatycy > Konstruktor

Konstruktor

W programowaniu obiektowym występuje specjalna metoda danej klasy zwana konstruktorem. Występuje ona podczas tworzenia jej instancji. Jej zadaniem jest przede wszystkim zainicjowanie obiektu, a w niektórych przypadkach także jego stworzenie. Jeśli zdecydujemy się na wywołanie konstruktora zainicjuje to wykonanie następujących zadań : obliczenie rozmiaru obiektu, wykonanie kodu wywołanego przez nas konstruktora, alokacja obiektu w pamięci, wpisanie do obiektu informacji, która łączyła go będzie z odpowiednią dla niego klasą, zerowanie obszaru pamięci, który zarezerwowany jest dla danego obiektu oraz w niektórych przypadkach wykonanie kodu klasy bazowej. Oprócz wykonania kodu wywołanego konstruktora wszystkie te zadania zostaną wykonane wewnętrznie. W zależności od języka programowania konstruktor oznaczany jest w różny sposób. W Pascalu jest to metoda poprzedzona słowem „constructor”, w PHP 5 „_construct”, a w C++, Javie, C#, PHP 4 oraz innych metoda zgodna z nazwą klasy. W samym języku C++ wyróżnia się kilka rodzajów konstruktorów. Pierwszy z nich to konstruktor domyślny, który wywołać jest najłatwiej, bo nie wymaga podania żadnych parametrów. Następny to konstruktor kopiujący, którego umieszczenie w sekcji prywatnej oznacza brak zgody na kopiowanie obiektu.

Trzeci konstruktor nosi nazwę konwertującego. Wywoływanie konstruktorów ma także swoją określoną kolejność. Jako pierwsze wywoływane są konstruktory klas bazowy. Ich kolejność zależy od pozycji na jakiej znajdują się w sekcji dziedziczenia w deklaracji klasy pochodnej. Jako drugie konstruktory obiektów składowych klasy. Ich chronologia zależy od kolejności w jakiej zostały zadeklarowane w ciele klasy. Na samym końcu wywoływany jest konstruktor klasy. Jeśli w klasie zadeklarowany jest konstruktor kopiujący musimy tam zadeklarować jeszcze innego konstruktora. Mozę to być konstruktor domyślny lub inny. Brak takiego działania powoduje, że nie mamy możliwości stworzenia nowego obiektu.

 

 

Tagi: , ,

Napisz komentarz

Musisz się zalogować żeby móc komentować.