تفاوت کلیدی – سازنده در مقابل ویرانگر
اکثر زبان های برنامه نویسی از برنامه نویسی شی گرا (OOP) پشتیبانی می کنند. این پارادایم است که به مدل سازی یک نرم افزار یا برنامه با استفاده از اشیا کمک می کند. OOP بهره وری و قابلیت نگهداری را بهبود می بخشد. در OOP همه چیز به عنوان یک شی در نظر گرفته می شود. اشیاء با استفاده از کلاس ها ایجاد یا نمونه سازی می شوند. Constructor و Destructor اصطلاحات رایج در برنامه نویسی شی گرا هستند. این مقاله تفاوت بین سازنده و تخریب کننده را مورد بحث قرار می دهد. یک سازنده و یک مخرب تابع عضو ویژه در یک کلاس هستند. سازنده و ویرانگر همان نام کلاس را دارند، اما ویرانگر علامت tilde (~) دارد.تفاوت اصلی بین سازنده و مخرب در این است که سازنده برای تخصیص حافظه به یک شی استفاده می شود در حالی که یک تخریب کننده برای حافظه اختصاصی یک شی استفاده می شود.
سازنده چیست؟
سازنده یک تابع عضو ویژه در کلاس برای تخصیص حافظه به یک شی است. می توان از آن برای ارائه مقادیر برای اعضای داده استفاده کرد. سازنده هنگام ایجاد شیء فراخوانی می شود. همنام با نام کلاس است. سازنده هیچ مقداری را بر نمی گرداند. بنابراین، حاوی نوع بازگشتی نیست. یک سازنده همچنین می تواند پارامترها را بپذیرد. سازنده با پارامترها به عنوان سازنده پارامتری شناخته می شود.
نمونه ای از سازنده به شرح زیر است.
مستطیل کلاس عمومی{
int طول، عرض;
مستطیل عمومی (int p, int q){
طول=p;
width=q;
}
public int account Area(){
بازگشت (طولعرض)؛
}
}
طبق کد بالا، سازنده همان نام کلاس است. سازنده Rectangle دو پارامتر را می پذیرد. آنها p و q هستند. مقدار صحیح p به طول نسبت داده می شود. مقدار صحیح q به عرض نسبت داده می شود. در calcu alteArea، ضرب طول و عرض برای یافتن مساحت مستطیل محاسبه می شود. در برنامه اصلی، برنامه نویس می تواند یک شی از نوع Rectangle ایجاد کند و آرگومان ها را ارسال کند. به عنوان مثال، Rectangle rect1=مستطیل جدید (2، 3). سپس سازنده پارامتری فراخوانی می شود و مقادیر را به طول و عرض اختصاص می دهد.
شکل 01: سازنده و ویرانگر
وقتی سازنده ای بدون هیچ پارامتری وجود داشته باشد، سازنده پیش فرض نامیده می شود.اگر برنامه نویس سازنده ای را تعریف نکند، سازنده پیش فرض فراخوانی می شود. اگر کلاسی به عنوان Student وجود داشته باشد و زمانی که برنامه نویس یک شی از نوع Student ایجاد می کند، سازنده پیش فرض فراخوانی می شود. به عنوان مثال، Student s1=new Student(); می تواند سازنده های متعدد با پارامترهای مختلف و انواع داده های مختلف در یک کلاس وجود داشته باشد. بر این اساس می توان سازنده مناسب را فراخوانی کرد. بنابراین، سازنده ها می توانند بیش از حد بارگذاری شوند.
ویرانگر چیست؟
نابودگر یک تابع عضو ویژه در کلاس است. برای تخصیص حافظه برای یک شی ایجاد شده توسط سازنده استفاده می شود. هنگامی که شیء از بین می رود، ویرانگر فراخوانی می شود. ذخیره سازی پاکسازی که دیگر مورد نیاز نیست را انجام می دهد. مانند سازنده، ویرانگر هم نام کلاس را دارد. همچنین حاوی یک نماد tilde (~) است.
نابودگر هیچ مقداری را بر نمی گرداند. برخلاف سازنده، ویرانگر هیچ پارامتری را نمی پذیرد. بنابراین، تخریبگر از بارگذاری بیش از حد پشتیبانی نمی کند.اعلان یک تخریبگر به عنوان یک عمل برنامه نویسی خوب در نظر گرفته می شود زیرا فضای حافظه را آزاد می کند و می توان از آن فضا برای ذخیره برخی اشیاء دیگر استفاده کرد. نحو مخرب شبیه به ~className() { } است. به عنوان مثال، ~مستطیل() {}; فقط یک تخریبگر در یک کلاس وجود دارد.
شباهتهای بین سازنده و ویرانگر چیست؟
- هم سازنده و هم مخرب با اشیا مرتبط هستند.
- هم سازنده و هم مخرب هیچ مقداری بر نمی گردند.
- هم سازنده و هم مخرب به طور خودکار فراخوانی می شوند.
تفاوت بین سازنده و ویرانگر چیست؟
Constructor vs Destructor |
|
سازنده یک عضو ویژه در کلاس است که برای تخصیص حافظه به یک شی استفاده می شود. | نابودگر عضو خاصی از کلاس است که برای تخصیص حافظه یک شی استفاده می شود. |
روش فراخوانی | |
هنگام ایجاد شیء یک سازنده فراخوانی می شود. | هنگامی که شی از بین می رود یا حذف می شود، یک تخریبگر فراخوانی می شود. |
استفاده | |
یک سازنده برای تخصیص حافظه برای اشیا استفاده می شود. | یک تخریبگر برای تخصیص حافظه برای اشیا استفاده می شود. |
پارامترها | |
یک سازنده پارامترها را می پذیرد. | نابودگر پارامترها را نمی پذیرد. |
تعداد سازنده و تخریب کننده | |
می تواند سازنده های متعددی با تعداد پارامترهای مختلف و انواع مختلف پارامترها وجود داشته باشد. | می تواند در کلاس یک تخریبگر وجود داشته باشد. |
سرعت اجرا | |
یک سازنده همنام با نام کلاس است. | نابودگر همان نام کلاس با نماد tilde (~) است. |
بارگیری بیش از حد | |
یک سازنده را می توان بیش از حد بارگذاری کرد. | یک تخریبگر را نمی توان بیش از حد بارگذاری کرد. |
خلاصه - سازنده در مقابل ویرانگر
OOP یک پارادایم رایج در توسعه نرم افزار است. می تواند یک پروژه پیچیده را ساده کند. یک سازنده و یک مخرب در OOP استفاده می شود. سازنده و ویرانگر همان نام کلاس را دارند، اما ویرانگر علامت ~ دارد.تفاوت بین سازنده و تخریب کننده در این است که سازنده برای تخصیص حافظه به یک شی استفاده می شود در حالی که یک تخریب کننده برای حافظه اختصاصی یک شی استفاده می شود.
دانلود PDF بازی Constructor vs Destructor
می توانید نسخه PDF این مقاله را دانلود کنید و طبق یادداشت استنادی از آن برای اهداف آفلاین استفاده کنید. لطفاً نسخه PDF را از اینجا دانلود کنید: تفاوت بین سازنده و ویرانگر