🔥 ۴۰ درصد تخفیف ثبت‌نام دوره‌ها قبل از افزایش قیمت‌ها
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ بهنوش پازوکی
Final در متدها
نیک رهنما حل شده توسط نیک رهنما

سلام

ببخشید میخواستم بدونم وقتی که ما میتونیم برای یک متد Access Modifier تعریف کنیم و اون رو Private در نظر بگیریم که نتونیم جای دیگه به غیر از کلاس خودش استفاده کنیم، چرا باید از کیورد final استفاده کنیم؟ 

عملا داریم کار Private رو انجام میدیم دیگه...

اصن چرا این کیورد قابل استفادس توی متد وقتی که Private هستش؟

 

سلام و احترام

private و final کارکردشون متفاوت هست 

وقتی ما از Access Modifire از نوع private استفاده میکنیم داریم میگوییم اگر کلاسی از کلاسی که داخلش فیلد یا متد مربوطه رو به صورت private تعریف کردیم آمد و ارث بری یا extends کرد اجازه نده بتونه از اون متد یا فیلد مربوطه استفاده کنه

ولی final برای مواقعی هست که ما نمیخواهیم اون فیلد مربوطه در کلاس مقدارش عوض بشه یه مثال ساده بزنم  تا این قضیه به خوبی براتون جا بیفته در ریاضیات میدانیم عدد PI  مقدارش ۳.۱۴ هست پس این عدد در هیچ جای برنامه نباید مقدارش عوض شود چون عدد PI یه چیزی هست که تغییری نمیکنه پس ما برای اینکه در طول برنامه نویسی به اشتباه نیایم و مقدار رو تغییر بدیم می‌آییم و اینطوری تعریف میکنیم:

public final double PI = 3.14;

اگر دقت کنید من به صورت public گذاشتم که میتونی private یا protected یا سطح پکیج مشخص کنید

حال اگر بنویسی  PI = ۵.۳ یا هر عدد دیگه خطا میدهد چرا که final تعریف کردم که یعنی مقدار تغییر نکند.

موفق باشید.

بهترین پاسخ
نیک رهنما ۲۳ شهریور ۱۳۹۹، ۱۹:۱۴