Qhov Tseem Ceeb Qhov Sib Txawv - Tus Tsim Nyog vs Destructor
Cov lus programming feem ntau txhawb Object Oriented Programming (OOP). Nws yog lub ntsiab lus uas yuav pab ua qauv software lossis ib qho kev pab cuam uas siv cov khoom. OOP txhim kho kev tsim khoom thiab kev ruaj ntseg. Hauv OOP txhua yam yog suav tias yog khoom. Cov khoom yog tsim los yog instantiated siv cov chav kawm. Constructor thiab Destructor yog cov ntsiab lus hauv Object Oriented Programming. Kab lus no tham txog qhov sib txawv ntawm tus tsim thiab tus destructor. Tus tsim thiab tus destructor yog cov tswv cuab tshwj xeeb hauv chav kawm. Tus tsim thiab tus destructor muaj tib lub npe raws li chav kawm, tab sis tus destructor muaj tilde (~) kos npe. Qhov sib txawv tseem ceeb ntawm tus tsim thiab tus destructor yog tus tsim qauv siv los faib lub cim xeeb rau ib qho khoom thaum tus destructor siv los txheeb xyuas qhov cim xeeb ntawm ib qho khoom.
Tus tsim yog dab tsi?
Ib tus tsim yog tus tswv cuab tshwj xeeb hauv chav kawm kom faib lub cim xeeb rau ib qho khoom. Nws tuaj yeem siv los muab qhov tseem ceeb rau cov tswv cuab cov ntaub ntawv. Tus constructor raug hu thaum tsim khoom. Nws muaj tib lub npe raws li lub npe ntawm chav kawm. Tus neeg tsim khoom tsis rov qab muaj nuj nqis. Yog li ntawd, nws tsis muaj hom rov qab. Tus neeg tsim khoom kuj tuaj yeem lees txais qhov ntsuas. Ib tug constructor nrog parameters yog hu ua parameterized constructor.
Ib qho piv txwv ntawm tus tsim muaj raws li hauv qab no.
public class Rectangle{
ntev, dav;
public Rectangle(int p, int q){
length=p;
width=q;
}
public int xamArea(){
return (ntevdav);
}
}
Raws li cov lej saum toj no, tus tsim muaj lub npe tib yam li lub npe chav kawm. Lub constructor Rectangle lees txais ob qhov kev txwv. lawv p i q. Tus nqi pes tsawg p yog muab rau qhov ntev. Tus lej lej q yog muab rau qhov dav. Hauv calcu alteArea, qhov sib npaug ntawm qhov ntev thiab qhov dav yog xam los nrhiav thaj tsam ntawm daim duab plaub. Hauv qhov kev zov me nyuam tseem ceeb, tus programmer tuaj yeem tsim cov khoom ntawm hom Rectangle thiab dhau qhov kev sib cav. e.g. Rectangle rect1=tshiab Rectangle(2, 3). Ces, tus parameterized constructor raug hu thiab muab qhov tseem ceeb rau qhov ntev thiab dav.
Daim duab 01: Tus tsim thiab tus tsim tawm
Thaum muaj ib tus neeg tsim khoom tsis muaj qhov ntsuas, nws raug hu ua tus tsim qauv. Yog hais tias tus programmer tsis txhais ib tug constructor, lub default constructor yuav invoked. Yog tias muaj ib chav kawm raws li Tub Ntxhais Kawm thiab thaum tus programmer tsim ib yam khoom ntawm tus tub kawm ntawv, tus tsim qauv raug hu ua. e.g. Student s1=new Student(); Nws tuaj yeem muaj ntau tus neeg tsim qauv nrog cov tsis sib txawv thiab cov ntaub ntawv sib txawv hauv ib chav kawm. Tus tsim tsim tsim nyog tuaj yeem hu tau raws li. Yog li ntawd, constructors yuav overloaded.
Tus neeg tua neeg yog dab tsi?
Ib tug destructor yog tus tswv cuab tshwj xeeb hauv chav kawm. Nws yog siv los de-allocate nco rau ib yam khoom tsim los ntawm tus tsim. Tus destructor yog invoked thaum lub khoom puas lawm. Nws nqa tawm qhov chaw khaws cia uas tsis tas yuav tsum tau ua ntxiv lawm. Zoo li tus tsim, tus destructor muaj tib lub npe raws li cov chav kawm. Nws kuj muaj lub cim tilde (~).
Tus neeg rhuav tshem tsis rov qab muaj nqis. Tsis zoo li tus tsim qauv, tus destructor tsis lees txais ib qho kev txwv. Yog li, destructor tsis txhawb nqa overloading. Tshaj tawm tus destructor yog suav tias yog kev xyaum ua haujlwm zoo vim tias nws tso tawm qhov chaw nco thiab qhov chaw ntawd tuaj yeem siv los khaws qee yam khoom. Lub syntax ntawm destructor zoo ib yam li ~className() { }. e.g. ~Rectangle() { }; Tsuas muaj ib tug destructor nyob rau hauv ib chav kawm xwb.
Dab tsi zoo sib xws ntawm tus tsim thiab tus tsim tawm?
- Ob tus neeg tsim khoom thiab tus neeg rhuav tshem yog txuam nrog cov khoom.
- Ob tus tsim thiab tus tsim tawm tsis rov qab muaj nqis.
- Ob tus neeg tsim khoom thiab tus neeg rhuav tshem raug hu ua tiav.
Dab tsi ntawm Constructor thiab Destructor?
Constructor vs Destructor |
|
Ib tus tsim yog tus tswv cuab tshwj xeeb hauv chav kawm uas siv los faib kev nco rau ib qho khoom. | Ib tug destructor yog ib tug tshwj xeeb ntawm chav kawm uas yog siv los deallocate nco txog ib yam khoom. |
Txoj Kev Invoking | |
Ib tus neeg tsim khoom raug hu thaum tsim khoom. | Tus neeg rhuav tshem raug hu thaum qhov khoom raug rhuav tshem lossis tshem tawm. |
Ib tus tsim yog siv los faib kev nco rau cov khoom. | Ib tug destructor yog siv los deallocate nco rau cov khoom. |
Parameters | |
Ib tus neeg tsim khoom lees txais qhov ntsuas. | Ib tus neeg rhuav tshem tsis lees txais qhov ntsuas. |
Yuav muaj ntau tus neeg tsim khoom nrog ntau tus lej sib txawv thiab ntau hom kev ntsuas. | Yuav muaj ib tus neeg rhuav tshem hauv chav kawm. |
Kev nrawm nrawm | |
Tus tsim muaj lub npe tib yam li lub npe chav kawm. | Ib tug destructor muaj tib lub npe raws li lub npe chav kawm nrog ib tug tilde (~) cim. |
Nyob ntau dhau | |
Ib tus neeg tsim khoom tuaj yeem ua dhau. | Ib tug destructor tsis tuaj yeem overloaded. |
Summary – Constructor vs Destructor
OOP yog ib qho piv txwv hauv kev txhim kho software. Nws tuaj yeem ua kom yooj yim rau txoj haujlwm nyuaj. Tus tsim thiab tus destructor yog siv hauv OOP. Tus tsim thiab destructor muaj lub npe tib yam li cov chav kawm, tab sis tus destructor muaj ib tug ~ kos npe. Qhov sib txawv ntawm tus tsim thiab tus destructor yog tus tsim qauv siv los faib kev nco rau ib yam khoom thaum tus destructor siv los txiav txim siab ntawm ib qho khoom.
Download PDF of Constructor vs Destructor
Koj tuaj yeem rub tawm PDF version ntawm kab lus no thiab siv nws rau offline hom phiaj raws li daim ntawv ceeb toom. Thov rub tawm PDF version ntawm no: Qhov txawv ntawm Tus Tsim thiab Destructor