Constructor and Destructor

Anonim

Ang klase ay nasa pinakadulo core ng object-oriented programming (OOP). Ito ay tulad ng isang plano para sa paglikha ng mga bagay na nagbibigay ng paunang mga halaga para sa mga variable ng miyembro at mga function ng miyembro. Ito ay ang pangunahing bloke ng gusali ng OOP na tumutukoy sa likas na katangian ng isang hinaharap na bagay. Ang pinakamahalagang bagay tungkol sa isang klase ay na tinutukoy nito ang isang bagong uri ng data at isang beses na tinukoy, maaari itong magamit upang lumikha ng mga bagay ng ganitong uri. Kaya ito ay sapat na upang sabihin ng isang klase ay isang template para sa isang bagay, at isang bagay sa katunayan ay isang halimbawa ng isang klase. Ito ay ginagamit upang lumikha at pamahalaan ang mga bagong bagay at suporta mana, na isa sa mga pangunahing konsepto ng object-oriented na mga programming language tulad ng Java. Sa maikli, ang isang klase ay nagsasagawa ng impormasyon tungkol sa isang uri ng data upang muling gamitin ang mga elemento kapag gumagawa ng maraming pagkakataon ng uri ng data na iyon. Ang data o mga variable na tinukoy sa loob ng isang klase ay tinatawag na mga variable ng pagkakataon.

Ano ang isang Constructor?

Ang tagapagbuo ay isang espesyal na function ng miyembro ng isang klase na tinatawag na kapag ang isang bagay ng isang bagay ay nilikha. Maaari itong maging mahirap sa oras upang magpasimula ng lahat ng mga variable sa isang klase sa tuwing ang isang pagkakataon ay nilikha. Tulad ng kinakailangan para sa pag-initialize ay karaniwan sa programming ng object-oriented, pinapayagan nito ang mga bagay na awtomatikong magsimula kapag nilikha ang mga ito. Ang prosesong ito ng awtomatikong pagpapasimula ay ginagawa sa pamamagitan ng paggamit ng isang tagapagbuo. Ang dahilan kung bakit ito ay tinatawag na espesyal ay dahil ang karaniwang paraan ay may parehong pangalan bilang klase. Sinimulan nito agad ang isang bagay sa paglikha at maaaring magamit upang itakda ang mga halaga ng mga miyembro ng isang bagay. Ang tagapagbuo ay syntactically katulad sa isang paraan sa object-oriented programming at isang pamamaraan ay isang pamamaraan na nauugnay sa isang klase at kasama sa anumang bagay ng klase na iyon. Sa maikli, isang tagapagbuo ay tinatawag sa bawat oras na ang isang bagay ng isang klase ay nilikha. Ang pinakamahalagang bagay tungkol sa mga tagapagtayo ay wala silang Uri ng Return, kahit na walang bisa.

Ano ang isang Destructor?

Ang isang destructor ay ganap na naiibang konsepto; ito ay isang espesyal na paraan na kung saan ay tinatawag na kapag ang isang klase ng klase ay tinanggal mula sa memorya. Ang isang destructor ay awtomatikong tinatawag kapag ang isang bagay ay hindi na kailangan o malapit nang mawala o ay inilabas nang tahasan. Ang pangunahing layunin ng isang destructor ay upang mapupuksa ang mga mapagkukunan na ginagamit ng bagay sa panahon ng lifecycle nito. Nagbibigay ito ng huling pagkakataon upang bawiin ang anumang memory na inilalaan upang magkakaroon ng sapat na puwang sa kimpal upang mag-imbak ng mga bagong bagay upang patakbuhin ang mga programa ng mahusay. Ang mga destruktor ay kadalasang ginagamit kasabay ng mga tagapagtayo, maliban kung ginagamit ito upang sirain ang mga bagay na nilikha gamit ang mga constructor. Ang ideya ay upang i-de-initialize ang mga bagay kapag sila ay tinanggal upang magbakante ng memorya para sa mga bagong bagay. Tulad ng mga constructor, destructors ay tinukoy bilang subroutines sa kahulugan ng klase at mayroon silang parehong pangalan bilang pangalan ng klase, maliban sa isang destructor na prefix na may isang ~ (tilde) operator. Ang mga destruktor ay tinatawag na tahasang sa C ++, gayunpaman, walang mga destructors sa Java.

Pagkakaiba sa pagitan ng Constructor at Destructor

Layunin ng Constructor at Destructor

Ang parehong mga constructor at destructors ay mga espesyal na function ng bawat klase ngunit may iba't ibang mga konsepto. Ang isang tagapagbuo ay ginagamit upang magpasimula ng isang halimbawa ng isang klase, ibig sabihin ito ay ginagamit sa bawat oras na ang isang klase ay instantiated, habang ang isang destructor ay ang kabaligtaran ng isang tagapagbuo na tinatawag na sa reverse order ng constructors.

Allocation ng Memory

Ang isang tagatayo ay tinatawag sa bawat oras ng isang bagong pagkakataon ng isang klase ay nilikha. Ito ay karaniwang isang function ng miyembro ng isang klase na initializes isang bagay kaagad sa paglikha at inilalaan memory sa mga ito. Ang isang destructor, sa kabilang banda, ay tinatawag na kapag ang isang klase ng isang klase ay tinanggal mula sa memorya na sa mga liko de-initializes mga bagay na nilikha gamit ang constructor upang magbakante ng memorya para sa mga bagong bagay.

Pangalan

Ang parehong mga constructor at destructors ay mga espesyal na pag-andar ng miyembro ng isang klase na may parehong pangalan bilang pangalan ng klase, maliban sa isang destructor na prefix na may operator ng ~ (tilde). Ang tagapagbuo ay walang anuman kundi isang paraan na walang Uri ng Return, hindi kahit na walang bisa, samantalang ang mga destructor ay eksaktong kabaligtaran ng mga constructor.

Sobrang sobra

Ang parehong mga constructor at destructors ay awtomatikong tinatawag pagkatapos paglikha at pagtanggal. Gayunpaman, hindi katulad ng mga tagapagtayo, ang mga destructor ay hindi maaaring ma-overload. Ang overloading ay isang konsepto ng programming ng object-oriented na nagpapahintulot sa iyo na tukuyin ang dalawa o higit pang mga function na may parehong pangalan upang maaari mong tawagan ang mga ito ng iba't ibang mga listahan ng argument.

Mga argumento

Sa programming ng object-oriented, ang mga constructor ay madalas na tumatanggap ng mga argumento na ginagamit nila upang itakda ang mga kinakailangang variable ng miyembro, samantalang ang mga destructor ay hindi tumatanggap ng anumang mga argumento.

Paggawa ng Constructor at Destructor

Binibigyang-daan ng mga constructor ang bagay na magpasimula ng ilan sa halaga nito bago ito ginagamit, samantalang pinipigilan ng mga destructor ang bagay na isagawa ang ilang bahagi ng code sa panahon kung kailan ito nawasak.

Constructor Verses Destructor: Paghahambing Tsart

Buod ng Constructor Vs. Destructor

Ang parehong mga constructor at destructors ay mga espesyal na pag-andar ng miyembro ng isang klase na may parehong pangalan bilang pangalan ng klase, maliban sa mga destructors ay sinusundan ng isang operator ng tilde.Ang isang tagapagbuo ay walang anuman kundi isang paraan maliban kung ito ay tinatawag na kapag ang isang bagay ng isang bagay ay nilikha, samantalang ang isang destructor ay eksaktong kabaligtaran ng mga constructor na tinatawag na kapag ang isang bagay ng isang bagay ay tinanggal mula sa memorya. Ang layunin ng mga destructors ay upang ma-de-initialize ang mga bagay na nilikha gamit ang mga constructor upang bawiin ang puwang ng memorya upang mapaunlakan ang mga bagong bagay.