Wprowadzenie do konstruktora i niszczyciela

Konstruktor i Niszczyciel. Konstruktor to specjalna funkcja o tej samej nazwie co nazwa klasy, w której została zdefiniowana. Jest wywoływany automatycznie, gdy tworzone jest nowe wystąpienie. Jest uważany za specjalny rodzaj funkcji, ponieważ nie musi być wywoływany jawnie przy użyciu obiektu. Destruktor można zdefiniować jako specjalny rodzaj metody, którą można odwołać po usunięciu instancji. Celem Destructor jest zwolnienie pamięci, którą się z nim wiąże, podczas tworzenia instancji klasy. Koncepcja Destructor dotyczy zarządzania pamięcią, aby zasoby mogły być efektywnie wykorzystywane. W językach takich jak C ++ istnieje koncepcja Destructor i można ją wywoływać automatycznie po usunięciu instancji, natomiast w języku takim jak Java koncepcja Destructor nie istnieje. Pozwoliło to napisać program w dobry sposób, aby mógł zostać poprawnie skompilowany i być lekki pod względem zużycia pamięci.

Bezpośrednie porównanie konstruktora i niszczyciela

Poniżej znajduje się 4 najlepsze porównanie między konstruktorem a niszczycielem

Kluczowe różnice między konstruktorem a niszczycielem

Istnieje kilka różnic między konstruktorami a destruktorami. Poniżej kilka typowych i ważnych różnic.

  • Konstruktor jest wywoływany, gdy tworzona jest instancja tej klasy. Nie trzeba go wywoływać jawnie. W przypadku destruktora wywołuje się po usunięciu wystąpienia dowolnej klasy. Jest to również coś, co pojawia się automatycznie po usunięciu obiektu.
  • Konstruktor prowadzi do zajęcia pamięci systemu przez zlokalizowanie ich w zasobach, a w przypadku destruktora jest odwrotnie. W destruktorze pamięć przypisana do zasobów jest zwalniana, aby mogła zostać wykorzystana przez inny zasób.
  • Aby zadeklarować konstruktora, nie ma potrzeby używania znaku specjalnego. Można po prostu stworzyć metodę, której nazwa jest podobna do nazwy klasy. W przypadku destruktora znak tyldy musi zostać użyty do wprowadzenia destruktora do programu.
  • Konstruktor może być używany w języku programowania wysokiego i średniego poziomu. W przypadku destruktora nie można go używać w języku wysokiego poziomu. C ++ może korzystać z destruktora, ale to samo nie jest dostępne w Javie. Wynika to z faktu, że język programowania wysokiego poziomu miał własny mechanizm zarządzania pamięcią.
  • Konstruktor może być używany bardzo często w programie. Jest bardzo prosty w użyciu i zmniejsza złożoność programu. Z drugiej strony, destruktor jest preferowany do użycia, gdy istnieje potrzeba zmniejszenia zużycia pamięci przez zasoby programu.

Bezpośrednie porównanie konstruktora i niszczyciela

KonstruktorBurzyciel
Wywoływany podczas tworzenia instancji
Utworzenie instancji lub obiektu dowolnej klasy prowadzi do automatycznego wywołania konstruktora, co spowoduje wykonanie wszystkich instrukcji w metodzie konstruktora.
Wywoływane podczas usuwania instancji
Po usunięciu instancji lub obiektu, destruktor jest wywoływany automatycznie, a następnie instrukcje klasy destruktor są wykonywane sekwencyjnie.
Zajmuje pamięć
Podczas wywoływania klasy alokuje pamięć do wszystkich zasobów, które klasa będzie dalej wykorzystywać. Prowadzi to do zużycia pamięci systemu do przechowywania danych na stałe lub tymczasowo.
Zwalnia pamięć
Podczas wywoływania destruktora uwalnia wszystkie wspomnienia o zajętych zasobach. Zwolnioną pamięć można dalej zlokalizować w innych zasobach używanych w programie.
Obsługiwane w językach średniego i wysokiego poziomu
Konstruktor jest wywoływany automatycznie za każdym razem, gdy zostanie utworzone wystąpienie tej klasy, a ta funkcja jest obsługiwana przez oba rodzaje języków: języki programowania średniego i wysokiego poziomu.
Wsparcie tylko w języku średniego poziomu
Funkcje destruktora są obsługiwane tylko w języku średniego poziomu, takim jak C ++. Jeśli chodzi o język wysokiego poziomu, taki jak Java, nie zezwala na takie funkcje, ponieważ ma swój własny sposób zarządzania pamięcią.
Podczas deklaracji nie jest wymagany znak specjalny
Aby zadeklarować konstruktor, wystarczy wpisać nazwę metody, która musi być taka sama jak nazwa klasy. Deklarowanie konstruktora nie powinno wymagać znaku specjalnego.
Tylda jest używana podczas deklaracji
Aby zadeklarować destruktor, konieczne będzie użycie tyldy. Po nazwie konstruktora musi następować znak tyldy i kończyć się małymi nawiasami, tak jak dzieje się to w każdej funkcji.

Wniosek

  • Konstruktor jest niczym innym, jak tylko metodą, która ma taką samą nazwę jak nazwa klasy. Wywołanie po utworzeniu instancji nie zajmuje czasu. W tym przypadku obiekt można utworzyć przy użyciu tej samej składni, jak przy tworzeniu obiektu dowolnej klasy. Do czasu utworzenia obiektu zajmuje on miejsce w pamięci i wykonuje instrukcję konstruktora.
  • Destruktor jest czymś dokładnie odwrotnym do konstruktora. Jest wywoływany natychmiast po usunięciu obiektu. W rzeczywistości, gdy obiekt jest usuwany, usuwa wszystkie znajdujące się w nim zasoby, co prowadzi do zwolnienia wszystkich pamięci przez nie zarezerwowanych, aby nowe zasoby mogły z niego korzystać. Chociaż istnieją pewne różnice między obiema koncepcjami, oba odgrywają istotną rolę w programowaniu, a zwłaszcza gdy mówimy o wydajnym programowaniu przy użyciu języka średniego poziomu.

Polecane artykuły:

To jest przewodnik po różnicy między konstruktorem a niszczycielem. Omówiliśmy wprowadzenie do Constructor i Destructor, kluczowe różnice wraz z tabelą porównawczą. Możesz także przejrzeć nasze inne sugerowane artykuły, aby dowiedzieć się więcej -

  1. C ++ vs Java
  2. Pytania do wywiadu w C ++
  3. Pytania dotyczące wywiadów z kolekcjami Java
  4. Kariera w programowaniu komputerowym