Różnica między konstruktorem a destruktorem

Różnica między konstruktorem a destruktorem

Klasa jest podstawą programowania obiektowego (OOP). To jak plan tworzenia obiektów, który zapewnia początkowe wartości dla zmiennych członków i funkcji członka. To podstawowy element składowy OOP, który określa naturę przyszłego obiektu. Najważniejszą rzeczą w klasie jest to, że definiuje nowy typ danych, a po zdefiniowaniu można go użyć do tworzenia obiektów tego typu. Wystarczy powiedzieć, że klasa jest szablonem dla obiektu, a obiekt jest w rzeczywistości instancją klasy. Służy do tworzenia i zarządzania nowymi obiektami oraz wspierania dziedziczenia, który jest jedną z podstawowych pojęć języków programowania zorientowanych na obiekty, takich jak Java. Krótko mówiąc, klasa organizuje informacje o typie danych, aby ponownie wykorzystać elementy przy tworzeniu wielu wystąpień tego typu danych. Dane lub zmienne zdefiniowane w klasie nazywane są zmiennymi instancji.

Co to jest konstruktor?

Konstruktor jest specjalną funkcją członkowską klasy, która jest wywoływana, gdy powstaje instancja obiektu. Czasami może być trudno zainicjować wszystkie zmienne w klasie za każdym razem, gdy tworzenie instancji jest. Ponieważ wymaganie inicjalizacji jest powszechne w programowaniu zorientowanym na obiekty, umożliwia automatyczne inicjowanie obiektów inicjalizację. Ten proces automatycznej inicjalizacji odbywa się za pomocą konstruktora. Powodem, dla którego nazywa się to specjalnym, jest to, że metoda instancji zwykle ma tę samą nazwę co klasa. Inicjuje obiekt natychmiast po utworzeniu i może być używany do ustawienia wartości członków obiektu. Konstruktor jest składniowo podobny do metody w programowaniu obiektowym, a metoda jest procedurą powiązaną z klasą i zawartą w dowolnym obiekcie tej klasy. Krótko mówiąc, konstruktor nazywany jest za każdym razem, gdy tworzony jest obiekt klasy. Najważniejszą rzeczą w konstruktorach jest to, że nie mają one typu powrotu, nawet nieważne.

Co to jest destruktor?

Destruktor jest całkowicie inną koncepcją; Jest to specjalna metoda wywoływana, gdy instancja klasy jest usuwana z pamięci. Destruktor nazywany jest automatycznie, gdy obiekt nie jest już potrzebny lub ma zamiar zniknąć lub zostać wyraźnie zwolniony. Głównym celem destruktora jest pozbycie się zasobów, których obiekt używał podczas cyklu życia. Daje obiektowi ostatnią szansę na zwolnienie każdej pamięci, którą przydzielono, aby na stercie będzie wystarczająco dużo miejsca, aby przechowywać nowe obiekty do wydajnego uruchamiania programów. Destruki są często używane w połączeniu z konstruktorami, z tym wyjątkiem, że są używane do niszczenia obiektów, które zostały utworzone za pomocą konstruktorów. Chodzi o to, aby inicjować obiekty, gdy są one usunięte, aby zwolnić pamięć dla nowych obiektów. Podobnie jak konstruktorzy, destruktory są zdefiniowane jako podprogramy w definicji klasy i mają tę samą nazwę co nazwa klasy, z wyjątkiem tego, że destruktor jest prefiksowany za pomocą a ~ (Tilde) Operator. Destruktury są wyraźnie nazywane w C ++, jednak w Javie nie ma destruktorów.

Różnica między konstruktorem a destruktorem

Cel konstruktora i destruktura

Zarówno konstruktorzy, jak i destruktory są specjalnymi funkcjami członkowskimi każdej klasy, ale z różnymi koncepcjami. Konstruktor służy do zainicjowania instancji klasy, co oznacza, że ​​jest wywoływany za każdym razem, gdy klasa jest tworzona, podczas gdy destruktor jest przeciwieństwem konstruktora, który jest wywoływany w odwrotnej kolejności konstruktorów.

Alokacja pamięci

Konstruktor nazywany jest za każdym razem, gdy tworzona jest nowa instancja klasy. Jest to w zasadzie funkcja członkowska klasy, która inicjuje obiekt natychmiast po utworzeniu i przydziela pamięć. Z drugiej strony destruktor nazywany jest, gdy instancja klasy jest usunięta z pamięci, która z kolei decyduje o obiektach, które zostały utworzone za pomocą konstruktorów, aby uwolnić pamięć dla nowych obiektów.

Nazwa

Zarówno konstruktorzy, jak i destruktory są specjalnymi funkcjami członkowskimi klasy o tej samej nazwie co nazwa klasy, z wyjątkiem destruktura operatora ~ (Tilde). Konstruktor jest niczym innym jak metodą, która nie ma rodzaju powrotu, nawet nieważna, podczas gdy destruktory są dokładnie przeciwne konstruktorom.

Przeciążenie

Zarówno konstruktorzy, jak i destruktury są nazywane automatycznie po utworzeniu i usunięciu. Jednak w przeciwieństwie do konstruktorów, destruktorów nie można przeciążyć. Przeciążenie to koncepcja programowania zorientowana na obiekt, która pozwala zdefiniować dwie lub więcej funkcji o tej samej nazwie.

Argumenty

W programowaniu obiektowym konstruktorzy często akceptują argumenty, których używają do ustawiania wymaganych zmiennych członków, podczas gdy destruktury nie akceptują żadnych argumentów.

Praca konstruktora i destruktura

Konstruktorzy pozwalają obiektowi zainicjować część jego wartości przed jego użyciem, podczas gdy destruktury pozwalają obiektowi wykonać jakąś część kodu w czasie, gdy jest zniszczony.

 Wersety konstruktora destruktora: wykres porównawczy

Podsumowanie konstruktora vs. Burzyciel

Zarówno konstruktorzy, jak i destruktory są specjalnymi funkcjami członkowski. Konstruktor jest niczym innym jak metodą, z wyjątkiem tego, że nazywa się to, gdy instancja obiektu jest tworzona, podczas gdy destruktor jest dokładnie przeciwieństwem konstruktorów, które są wywoływane, gdy instancja obiektu jest usuwana z pamięci. Celem Destructors jest deinitializowanie obiektów, które zostały utworzone za pomocą konstruktorów w celu zwolnienia miejsca pamięci, aby pomieścić nowe obiekty.