Үндсэн ялгаа – Бүтээгч ба Устгагч
Ихэнх програмчлалын хэл нь Объект хандалтат програмчлалыг (OOP) дэмждэг. Энэ нь объект ашиглан программ хангамж эсвэл программыг загварчлахад тусалдаг парадигм юм. OOP нь бүтээмж, засвар үйлчилгээг сайжруулдаг. OOP-д бүх зүйлийг объект гэж үздэг. Объектуудыг анги ашиглан үүсгэсэн эсвэл үүсгэсэн. Объект хандалтат програмчлалд бүтээгч ба устгагч нийтлэг нэр томъёо юм. Энэ нийтлэлд бүтээгч ба устгагч хоёрын ялгааг авч үзэх болно. Бүтээгч ба устгагч нь анги дахь тусгай гишүүн функц юм. Бүтээгч болон устгагч нь ангитай ижил нэртэй боловч устгагч нь гулдмай (~) тэмдэгтэй байдаг. Бүтээгч болон устгагч хоёрын гол ялгаа нь тухайн объектод санах ойг хуваарилахад бүтээгчийг ашигладаг бол устгагч нь объектын санах ойг задлахад ашиглагддаг.
Барилгачин гэж юу вэ?
Бүтээгч нь тухайн объектод санах ойг хуваарилах анги дахь тусгай гишүүн функц юм. Үүнийг өгөгдлийн гишүүдийн утгыг хангахад ашиглаж болно. Объектыг үүсгэх үед бүтээгч дуудагдана. Энэ нь ангийн нэртэй ижил нэртэй байна. Бүтээгч ямар ч утгыг буцаадаггүй. Тиймээс энэ нь буцах төрлийг агуулаагүй болно. Бүтээгч нь мөн параметрүүдийг хүлээн авах боломжтой. Параметр бүхий бүтээгчийг параметржүүлсэн бүтээгч гэж нэрлэдэг.
Бүтээгчийн жишээ нь дараах байдалтай байна.
нийтийн анги Тэгш өнцөгт{
int урт, өргөн;
нийтийн тэгш өнцөгт(int p, int q){
урт=p;
өргөн=q;
}
public int accountArea(){
буцах (уртөргөн);
}
}
Дээрх кодын дагуу бүтээгч нь ангийн нэртэй ижил нэртэй байна. Rectangle бүтээгч нь хоёр параметрийг хүлээн авдаг. Эдгээр нь p ба q юм. Бүхэл тоо p нь уртад оноогдсон. Бүхэл тоон утгыг q өргөнд онооно. Calcu alteArea-д тэгш өнцөгтийн талбайг олохын тулд урт ба өргөнийг үржүүлгийг тооцдог. Үндсэн программ дээр программист Rectangle төрлийн объект үүсгэж, аргументуудыг дамжуулж болно. жишээ нь Тэгш өнцөгт rect1=шинэ Тэгш өнцөгт(2, 3). Дараа нь параметржүүлсэн байгуулагчийг дуудаж, урт ба өргөнд утгуудыг онооно.
Зураг 01: Бүтээгч ба Устгагч
Ямар ч параметргүй бүтээгч байвал түүнийг үндсэн байгуулагч гэнэ. Хэрэв программист бүтээгчийг тодорхойлоогүй бол анхдагч бүтээгчийг дуудах болно. Хэрэв Оюутан гэсэн анги байгаа бөгөөд програмист нь Student төрлийн объект үүсгэх үед анхдагч байгуулагчийг дуудна. жишээ нь Оюутан s1=new Student(); Нэг ангид өөр өөр параметр, өөр өөр өгөгдлийн төрөл бүхий олон бүтээгч байж болно. Тохирох бүтээгчийг зохих ёсоор дуудаж болно. Тиймээс бүтээгчид хэт ачаалалтай байж болно.
Устгагч гэж юу вэ?
Устгагч нь ангийн тусгай гишүүн функц юм. Энэ нь бүтээгчийн үүсгэсэн объектын санах ойг хуваарилахад ашиглагддаг. Объектыг устгах үед устгагч дуудагдана. Энэ нь шаардлагагүй болсон цэвэрлэгээний агуулахыг гүйцэтгэдэг. Бүтээгчтэй адил устгагч нь ангитай ижил нэртэй байна. Энэ нь мөн гулдмай (~) тэмдгийг агуулна.
Устгагч ямар ч утгыг буцаадаггүй. Бүтээгчээс ялгаатай нь устгагч нь ямар ч параметрийг хүлээн авдаггүй. Тиймээс устгагч нь хэт ачааллыг дэмждэггүй. Устгагчийг зарлах нь санах ойн зайг чөлөөлж, бусад объектуудыг хадгалахад ашиглах боломжтой тул програмчлалын сайн туршлага гэж үздэг. Устгагчийн синтакс нь ~className() { }-тэй төстэй. жишээ нь ~Rectangle() { }; Нэг ангид зөвхөн ганц устгагч байж болно.
Бүтээгч ба Устгагчийн хооронд ямар төстэй зүйл байдаг вэ?
- Бүтээгч болон устгагч хоёулаа объектуудтай холбоотой.
- Бүтээгч болон устгагч аль аль нь ямар ч утгыг буцаадаггүй.
- Бүтээгч болон устгагч хоёулаа автоматаар дуудагдана.
Бүтээгч ба Устгагч хоёрын ялгаа юу вэ?
Бүтээгч ба Устгагч |
|
Бүтээгч нь тухайн объектод санах ойг хуваарилахад ашигладаг ангийн тусгай гишүүн юм. | Устгагч нь тухайн объектын санах ойг задлахад ашигладаг ангийн тусгай гишүүн юм. |
Дуудах арга | |
Объектыг үүсгэх үед бүтээгч дуудагдана. | Объектыг устгах эсвэл устгах үед устгагч дуудагдана. |
Хэрэглээ | |
Бүтээгчийг объектуудад санах ой хуваарилахад ашигладаг. | Объектуудын санах ойг задлахад устгагч ашигладаг. |
Параметрүүд | |
Бүтээгч нь параметрүүдийг хүлээн авдаг. | Устгагч нь параметрүүдийг хүлээн зөвшөөрдөггүй. |
Бүтээгч ба устгагчийн тоо | |
Өөр олон тооны параметр, өөр төрлийн параметртэй олон бүтээгч байж болно. | Ангид ганц устгагч байж болно. |
Гүйцэтгэх хурд | |
Бүтээгч нь ангийн нэртэй ижил нэртэй байна. | Устгагч нь хулд (~) тэмдэг бүхий ангийн нэртэй ижил нэртэй байна. |
Хэт ачаалал | |
Бүтээгчийг хэт ачаалж болно. | Устгагчийг хэт ачаалах боломжгүй. |
Хураангуй – Бүтээгч ба Устгагч
OOP нь програм хангамж хөгжүүлэхэд түгээмэл хэрэглэгддэг парадигм юм. Энэ нь нарийн төвөгтэй төслийг хялбаршуулж чадна. OOP-д бүтээгч болон устгагчийг ашигладаг. Бүтээгч болон устгагч нь ангитай ижил нэртэй боловч устгагч нь ~ тэмдэгтэй байдаг. Бүтээгч болон устгагч хоёрын ялгаа нь тухайн объектод санах ойг хуваарилахад бүтээгчийг ашигладаг бол устгагч нь объектын санах ойг задлахад ашиглагддаг.
Constructor vs Destructor-ийн PDF файлыг татаж авах
Та энэ нийтлэлийн PDF хувилбарыг татаж аваад офлайн зорилгоор ашиглах боломжтой. PDF хувилбарыг эндээс татаж авна уу: Бүтээгч ба Устгагчийн хоорондох ялгаа