Հիմնական տարբերություն – Կոնստրուկտոր ընդդեմ կործանողի
Ծրագրավորման լեզուների մեծ մասն աջակցում է Օբյեկտի վրա հիմնված ծրագրավորում (OOP): Դա այն պարադիգմն է, որն օգնում է մոդելավորել ծրագրակազմ կամ ծրագիր՝ օգտագործելով օբյեկտներ: OOP-ը բարելավում է արտադրողականությունը և պահպանողականությունը: OOP-ում ամեն ինչ դիտարկվում է որպես օբյեկտ։ Օբյեկտները ստեղծվում կամ ստեղծվում են դասերի միջոցով: Constructor և Destructor ընդհանուր տերմիններ են Օբյեկտ ուղղված ծրագրավորման մեջ: Այս հոդվածը քննարկում է կոնստրուկտորի և կործանարարի միջև եղած տարբերությունը: Կոնստրուկտորը և դեստրուկտորը դասի հատուկ անդամ ֆունկցիա են: Կոնստրուկտորը և դեստրուկտորը նույն անվանումն ունեն, ինչ դասը, բայց դեստրուկտորն ունի tilde (~) նշան:Կոնստրուկտորի և կործանարարի միջև հիմնական տարբերությունն այն է, որ կոնստրուկտորն օգտագործվում է օբյեկտին հիշողություն հատկացնելու համար, մինչդեռ դեստրուկտորը օգտագործվում է օբյեկտի տեղաբաշխման հիշողությանը:
Ի՞նչ է կոնստրուկտորը:
Կոնստրուկտորը դասի հատուկ անդամ ֆունկցիա է՝ օբյեկտին հիշողություն հատկացնելու համար: Այն կարող է օգտագործվել տվյալների անդամների համար արժեքներ տրամադրելու համար: Կոնստրուկտորը կանչվում է օբյեկտի ստեղծման ժամանակ: Այն ունի նույն անվանումը, ինչ դասի անվանումը։ Կոնստրուկտորը ոչ մի արժեք չի վերադարձնում: Հետևաբար, այն չի պարունակում վերադարձի տեսակ: Կոնստրուկտորը կարող է նաև ընդունել պարամետրեր: Պարամետրերով կոնստրուկտորը հայտնի է որպես պարամետրացված կոնստրուկտոր:
Կոնստրուկտորի օրինակը հետևյալն է.
հասարակական դասի ուղղանկյուն{
int երկարություն, լայնություն;
հրապարակային ուղղանկյուն (int p, int q){
երկարություն=p;
լայնություն=q;
}
public int հաշվարկ Տարածք(){
վերադարձ (երկարությունլայնություն);
}
}
Ըստ վերը նշված կոդի, կոնստրուկտորն ունի նույն անունը, ինչ դասի անվանումը։ Constructor Rectangle-ն ընդունում է երկու պարամետր: Դրանք p և q են։ P ամբողջ արժեքը վերագրվում է երկարությանը: Q ամբողջ արժեքը վերագրվում է լայնությանը: Calcu alteArea-ում երկարության և լայնության բազմապատկումը հաշվարկվում է ուղղանկյան մակերեսը գտնելու համար: Հիմնական ծրագրում ծրագրավորողը կարող է ստեղծել Rectangle տիպի օբյեկտ և փոխանցել արգումենտները։ օր. Rectangle rect1=new Rectangle(2, 3): Այնուհետև կանչվում է պարամետրացված կոնստրուկտորը և արժեքները վերագրում է երկարությանը և լայնությանը:
Նկար 01. Կոնստրուկտոր և կործանիչ
Երբ կա կոնստրուկտոր առանց որևէ պարամետրի, այն կոչվում է լռելյայն կոնստրուկտոր:Եթե ծրագրավորողը չի սահմանում կոնստրուկտոր, ապա կկանչվի լռելյայն կոնստրուկտորը: Եթե կա որպես Student դաս, և երբ ծրագրավորողը ստեղծում է Student տիպի օբյեկտ, ապա կանչվում է լռելյայն կոնստրուկտորը: օր. Ուսանող s1=new Student(); Դասում կարող են լինել մի քանի կոնստրուկտորներ՝ տարբեր պարամետրերով և տվյալների տարբեր տեսակներով: Համապատասխան կոնստրուկտորը կարող է կանչվել համապատասխանաբար: Հետևաբար, կոնստրուկտորները կարող են ծանրաբեռնվել։
Ի՞նչ է կործանիչը:
Destructor-ը դասի հատուկ անդամ ֆունկցիա է: Այն օգտագործվում է կոնստրուկտորի կողմից ստեղծված օբյեկտի համար հիշողությունը ապաբաշխելու համար: Դեստրուկտորը կանչվում է, երբ օբյեկտը ոչնչացվում է: Այն իրականացնում է մաքրման պահեստավորում, որն այլևս չի պահանջվում: Ինչպես կոնստրուկտորը, այնպես էլ դեստրուկտորն ունի դասի նույն անունը: Այն նաև պարունակում է տիլդ (~) նշան:
Քայքայիչը ոչ մի արժեք չի վերադարձնում: Ի տարբերություն կոնստրուկտորի՝ դեստրուկտորը ոչ մի պարամետր չի ընդունում։ Այսպիսով, կործանիչը չի աջակցում գերբեռնվածությանը:Դեստրուկտորի հայտարարումը համարվում է լավ ծրագրավորման պրակտիկա, քանի որ այն ազատում է հիշողության տարածքը, և այդ տարածքը կարող է օգտագործվել որոշ այլ օբյեկտներ պահելու համար: Destructor-ի շարահյուսությունը նման է ~className() {}-ին: օր. ~Ուղղանկյուն() {}; Դասարանում կարող է լինել միայն մեկ կործանիչ:
Որո՞նք են նմանությունները կառուցողի և կործանարարի միջև:
- Եվ կառուցողը, և ապակառուցիչը կապված են օբյեկտների հետ:
- Եվ կառուցողը և ապակառուցիչը որևէ արժեք չեն վերադարձնում:
- Եվ կոնստրուկտորը և ապակառուցիչը կոչվում են ավտոմատ կերպով:
Ո՞րն է տարբերությունը կառուցողի և կործանարարի միջև:
Կոնստրուկտոր ընդդեմ կործանիչ |
|
Կառուցիչը դասի հատուկ անդամ է, որն օգտագործվում է օբյեկտին հիշողություն հատկացնելու համար: | Destructor-ը դասի հատուկ անդամ է, որն օգտագործվում է օբյեկտի հիշողությունը տեղաբաշխելու համար: |
Հրահանգի մեթոդ | |
Օբյեկտը ստեղծվելիս կանչվում է կոնստրուկտոր: | Կոչնչացողը կոչվում է, երբ օբյեկտը ոչնչացվում կամ ջնջվում է: |
Օգտագործում | |
Օբյեկտների համար հիշողություն հատկացնելու համար օգտագործվում է կոնստրուկտոր: | Օբյեկտների համար հիշողությունը տեղաբաշխելու համար օգտագործվում է կործանիչ: |
Պարամետրեր | |
Կառուցիչն ընդունում է պարամետրերը: | Քայքայիչը չի ընդունում պարամետրերը: |
Կոնստրուկտորների և կործանիչների թիվը | |
Կարող են լինել մի քանի կոնստրուկտորներ՝ տարբեր թվով պարամետրերով և տարբեր տեսակի պարամետրերով: | Դասարանում կարող է լինել միայնակ կործանիչ։ |
Կատարման արագություն | |
Կառուցիչն ունի նույն անունը, ինչ դասի անունը: | Destructor-ը նույն անվանումն ունի, ինչ դասի անվանումը tilde (~) նշանով: |
Գերբեռնում | |
Կառուցիչը կարող է գերբեռնված լինել: | Քանդող սարքը չի կարող գերբեռնվել: |
Ամփոփում – Կոնստրուկտոր ընդդեմ կործանիչ
OOP-ը ծրագրային ապահովման մշակման ընդհանուր պարադիգմ է: Այն կարող է պարզեցնել բարդ նախագիծը: OOP-ում օգտագործվում են կոնստրուկտոր և դեստրուկտոր: Կոնստրուկտորը և դեստրուկտորը նույն անվանումն ունեն, ինչ դասը, բայց դեստրուկտորն ունի ~ նշան։Կոնստրուկտորի և դեստրուկտորի միջև տարբերությունն այն է, որ կոնստրուկտորն օգտագործվում է օբյեկտին հիշողություն հատկացնելու համար, մինչդեռ դեստրուկտորը օգտագործվում է օբյեկտի տեղաբաշխման հիշողության համար:
Ներբեռնեք Constructor vs Destructor-ի PDF-ը
Դուք կարող եք ներբեռնել այս հոդվածի PDF տարբերակը և օգտագործել այն անցանց նպատակներով՝ ըստ մեջբերումների: Խնդրում ենք ներբեռնել PDF տարբերակը այստեղ. Տարբերությունը կառուցողի և կործանարարի միջև