کلمه final هنگام تعریف class

این تاپیک 3 پاسخ و 2 مشارکت کننده دارد . آخرین آپدیت توسط :  کیوان علی محمدی ،‏ 3 سال و 4 ماه پیش .

این تاپیک تاکنون 1031 بازدید داشته است .

نویسنده پست
پنجشنبه ، 11 جولای 2013     7:52 ب.ظ #


مهشاد کلانتری

Author
VIP
432 پست67 تاپیک

سلام. دوستان همگی خسته نباشید

من یه جا دیدم وقتی داشت کلاس تعریف میکرد قبلش کلمه final به کار برده بود من میخوام ببینم چرا از این استفاده کرده؟

یعنی اینطوری:

و این جمله هم بخونید:

در کلاس خود از تابع پیش فرض clone__ برای جلوگیری از تقلید(Clone)(شبیه سازی) توابع استفاده کنید:

اگه استفاده نکنیم چه اتفاقی می افته دقیقا؟

راستی تو کد بالا این قسمتش "};" اگه ; نذاریم بده؟

0  تشکر
پنجشنبه ، 11 جولای 2013     11:57 ب.ظ #


کیوان علی محمدی

Authorplus
VIP
1792 پست4 تاپیک

سلام گاهی وقتا پیش میاد شما مثلا یه کلاسی رو نوشتین و تمایل ندارین که از این کلاس،کلاس دیگه ای مشتق بشه،برای این کار شما از کلمه کلیدی final در تعریف کلاس استفاده می کنید،و در رابطه با متدهای کلاس هم همین وضع برقراره،یعنی اگه شما نخواید که اون متد مورد نظر شما بازنویسی و یا به اصطلاح override f بشه از کلمه final در تعریف متد استفاده میکنید.(البته اگه کلاس رو با final تعریف کنید دیگه نیازی نیست متد ها رو هم با final تعریف کنید)

شما وقتی یک نمونه از کلاس رو برابر یک متغییر قرار میدید،در واقع اون متغییر به صورت reference به اون نمونه دسترسی داره،یعنی میتونه به خاصیت ها و متد های اون نمونه دسترسی داشه باشه،اما با استفاده از clone در واقع یک کپی دقیق از نمونه در متغییر قرار میگیره و دیگه این متغییر دیگه دسترسی مستقیم به اون خواص و متدهای نمونه  نداره. از این  clone__ هم وقتی توی کلاس  استفاده میشه که میخواید دستوراتی رو زمانی که یک کپی از  نمونه کلاس شما با clone گرفته میشه رو اجرا کنید.

بابت اون سمی کالون هم لازم نیست بذارید.

1  تشکر
جمعه ، 12 جولای 2013     1:16 ق.ظ #


مهشاد کلانتری

Author
VIP
432 پست67 تاپیک

با این حساب کد زیر اجازه ی کپی گرفتن رو نمیده؟

0  تشکر
جمعه ، 19 جولای 2013     12:06 ق.ظ #


کیوان علی محمدی

Authorplus
VIP
1792 پست4 تاپیک

بله تقریبا درسته،البته اگه میخوای پیغام خطا هم نشون بدی یه دستور echo کافیه و بعدشم دستور exit

در این صورت هم پیغام خطا نشون داده میشه هم هیچ کپی از کلاس شما گرفته نمیشه،اون کلمه final هم اینجا لازم نیست بنویسی.

2  تشکر
پست 1 تا 4 (از مجموع 4 پست)

برای پاسخ دادن به این تاپیک باید وارد سایت شوید .