Разлика между конструктор и разрушител

Класът е в основата на обектно-ориентираното програмиране (OOP). Това е като план за създаване на обекти, който предоставя начални стойности за променливи член и функции на членове. Това е основният градивен елемент на OOP, който определя естеството на бъдещ обект. Най-важното за един клас е, че той определя нов тип данни и веднъж дефиниран, той може да се използва за създаване на обекти от този тип. Така че би било достатъчно да се каже, че клас е шаблон за обект, а обектът всъщност е екземпляр от клас. Използва се за създаване и управление на нови обекти и подпомагане на наследяването, което е една от основните концепции на обектно-ориентираните езици за програмиране като Java. Накратко, клас организира информация за типа данни, така че да използва повторно елементи, когато прави няколко екземпляра от този тип данни. Данните или променливите, дефинирани в клас, се наричат ​​променливи инстанции.

Какво е конструктор?

Конструктор е специална функция член на клас, която се извиква, когато се създава инстанция на обект. Понякога може да бъде трудно да се инициализират всички променливи в клас всеки път, когато се създаде инстанция. Тъй като изискването за инициализация е често срещано в обектно-ориентираното програмиране, то позволява на обектите да се инициализират автоматично, когато са създадени. Този процес на автоматична инициализация се осъществява чрез използването на конструктор. Причината, поради която се нарича специална, е, че методът на инстанцията обикновено има същото име като класа. Той инициализира обект веднага след създаването и може да се използва за задаване на стойностите на членовете на обект. Конструкторът е синтактично подобен на метод в обектно-ориентирано програмиране и методът е процедура, свързана с клас и включена във всеки обект от този клас. Накратко, конструктор се нарича всеки път, когато се създаде обект от клас. Най-важното за конструкторите е, че те нямат Тип връщане, дори не са нищожни.

Какво е разрушител?

Разрушителят е изцяло различна концепция; това е специален метод, който се извиква, когато екземпляр от клас се изтрие от паметта. Деструктор се извиква автоматично, когато обект вече не е необходим или е на път да изчезне или се пусне изрично. Основната цел на деструктора е да се отърве от ресурсите, които обектът е използвал по време на жизнения си цикъл. Той дава на обекта последен шанс да освободи всяка памет, която е разпределила, така че да има достатъчно място в хепа, за да се съхраняват нови обекти за ефективно изпълнение на програми. Деструкторите често се използват заедно с конструктори, освен че се използват за унищожаване на обекти, създадени с помощта на конструктори. Идеята е да се деинициализират обекти, когато са изтрити, за да се освободи паметта за нови обекти. Подобно на конструкторите, деструкторите са дефинирани като подпрограми в дефиницията на клас и имат същото име като името на класа, с изключение на това, че деструкторът е с префикс с ~ (tilde) оператор. Разрушителите се наричат ​​изрично в C ++, но в Java няма деструктори.

Разлика между конструктор и разрушител

Предназначение на конструктор и разрушител

Както конструкторите, така и деструкторите са специални функции на членове от всеки клас, но с различни концепции. Конструктор се използва за инициализиране на инстанцията на клас, което означава, че се извиква всеки път, когато клас се инстанцира, докато деструктор е обратното на конструктор, който се нарича в обратен ред на конструктори.

Разпределение на паметта

Конструктор се извиква всеки път, когато се създаде нов екземпляр от клас. Това е основно член функция на клас, който инициализира обект веднага след създаването и му разпределя памет. От друга страна, деструктор се извиква, когато екземпляр от клас се изтрие от паметта, което на свой ред деинициализира обекти, създадени с помощта на конструктори за освобождаване на памет за нови обекти.

име

Както конструкторите, така и деструкторите са специални функции-членове на клас със същото име като името на класа, с изключение на това, че деструкторът е с префикс с оператор ~ (tilde). Конструкторът не е нищо друго освен метод, който няма връщащ тип, дори невалиден, докато деструкторите са точно противоположни на конструкторите.

Претоварването

И конструкторите, и деструкторите се извикват автоматично след създаването и изтриването. Въпреки това, за разлика от конструкторите, деструкторите не могат да бъдат претоварени. Претоварването е обектно-ориентирана концепция за програмиране, която ви позволява да дефинирате две или повече функции със същото име, така че да можете да ги извиквате с различни списъци с аргументи.

Аргументи

В обектно-ориентираното програмиране конструкторите често приемат аргументи, които използват за задаване на необходимите променливи член, докато деструкторите не приемат никакви аргументи.

Работа на конструктор и разрушител

Конструкторите позволяват на обекта да инициализира част от стойността си, преди да бъде използван, докато деструкторите позволяват на обекта да изпълнява част от кода по време на унищожаването му..

 Разрушител на стихове от конструктора: сравнителна диаграма

Обобщение на Constructor Vs. пещ за горене на отпадъци

Както конструкторите, така и деструкторите са специални функции-членове на клас със същото име като името на класа, с изключение на това, че деструкторите се предхождат от оператор ~ tilde. Конструкторът не е нищо друго освен метод, освен че се извиква, когато се създава инстанция на обект, докато деструкторът е точно обратното на конструкторите, които се извикват, когато екземпляр на обект се изтрие от паметта. Целта на деструкторите е да деинициализират обекти, създадени с помощта на конструктори, за да се освободи място в паметта за настаняване на нови обекти.