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

Класа је у самом срцу објектно оријентисаног програмирања (ООП). То је попут нацрта за стварање објеката који пружа почетне вредности за чланске променљиве и функције чланова. То је основни блок ООП-а који дефинише природу будућег објекта. Најважнија ствар о класи је да она дефинише нови тип података и када се једном дефинише, може се користити за креирање објеката тог типа. Тако да би било довољно рећи да је класа предложак објекта, а објект у ствари инстанца класе. Користи се за креирање и управљање новим објектима и за подршку насљеђивању, што је један од основних концепата објектно оријентисаних програмских језика као што је Јава. Укратко, класа организује информације о врсти података тако да поново употребљава елементе приликом прављења више инстанци тог типа података. Подаци или променљиве дефинисане унутар класе називају се варијабле инстанце.

Шта је Конструктор?

Конструктор је посебна функција класе која се позива када се створи инстанца објекта. Понекад може бити тешко иницијализирати све променљиве у класи сваки пут када се створи инстанца. Како је захтјев за иницијализацијом уобичајен у објектно оријентираном програмирању, омогућава објектима да се аутоматски иницијализирају када се створе. Овај поступак аутоматске иницијализације врши се кориштењем конструктора. Разлог зашто се зове специјалним је тај што метода инстанце обично има исти назив као и класа. Иницијализира објект одмах по креирању и може се користити за постављање вриједности чланова објекта. Конструктор је синтактички сличан методи у објектно-оријентисаном програмирању, а метода је поступак повезан са класом и укључен у било који објект те класе. Укратко, конструктор се зове сваки пут када се створи предмет класе. Најважнија ствар код конструктора је да немају повратни тип, чак ни празнину.

Шта је Деструктор?

Деструктор је потпуно другачији концепт; то је посебна метода која се позива када се инстанца класе избрише из меморије. Деструктор се аутоматски позива када објект више није потребан или ће ускоро нестати или се експлицитно пушта. Главна сврха деструктора је да се ослободи ресурса који је објект користио током свог животног циклуса. Објекту даје посљедњу прилику да ослободи било коју додијељену меморију, тако да ће бити довољно простора на хрпи за спремање нових објеката за ефикасно покретање програма. Деструктори се често користе заједно са конструкторима, осим што се користе за уништавање објеката који су створени помоћу конструктора. Идеја је деиницијализирати објекте када се обришу како би се ослободила меморија за нове објекте. Попут конструктора, деструктори су дефинисани као подпрограми у дефиницији класе и имају исто име као и назив класе, осим што је деструктор префиксан са ~ (тилде) оператора. Деструктори се изричито позивају на Ц ++, међутим, у Јави нема деструктора.

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

Намена конструктора и деструктора

И конструктори и деструктори су посебне функције чланова сваке класе, али са различитим концептима. Конструктор се користи за иницијализацију инстанције класе, што значи да се позива сваки пут када се класа инстанцира, док је деструктор супротно од конструктора који се зове обрнутим редоследом конструктора.

Додјела меморије

Конструктор се зове сваки пут када се креира нова инстанца класе. То је у основи функција члана класе која иницијализира објект одмах по креирању и додељује му меморију. С друге стране, деструктор се позива када се инстанца класе избрише из меморије која заузврат деиницијализира објекте који су створени помоћу конструктора како би ослободили меморију за нове објекте.

Име

И конструктори и деструктори су посебне функције чланова класе са истим именом као и име класе, осим што је деструктор префиксан с оператором ~ (тилде). Конструктор није ништа друго него метода која нема повратни тип, чак ни неважећи, док су деструктори управо супротно од конструктора.

Преоптерећење

И конструктори и деструктори се аутоматски позивају након креирања и брисања. Међутим, за разлику од конструктора, деструктори се не могу преоптеретити. Преоптерећење је објектно оријентисани програмски концепт који вам омогућава да дефинишете две или више функција истог имена тако да их можете позвати са различитим списковима аргумената.

Аргументи

У објектно оријентираном програмирању конструктори често прихватају аргументе које користе за постављање потребних варијабли члана, док деструктори не прихватају никакве аргументе.

Рад Конструктора и Деструктора

Конструктори омогућавају објекту да иницијализира неку вредност своје вредности пре него што се користи, док деструктори омогућавају објекту да изврши неки део кода у време када је уништен..

 Деструктор стихова конструктора: упоредна табела

Резиме конструктора Вс. Деструктор

И конструктори и деструктори су посебне функције чланова класе са истим именом као и име класе, осим што деструкторима претходи оператер ~ тилде. Конструктор није ништа друго него метода осим што се назива када се створи инстанца објекта, док је деструктор управо супротно од конструктора који се позивају када се инстанца објекта избрише из меморије. Сврха деструктора је деиницијализација објеката који су створени помоћу конструктора како би се ослободио меморијски простор за смештај нових објеката.