💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در آذرماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ ابوالفضل رضایی
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 تعریف کردم که یعنی مقدار تغییر نکند.

موفق باشید.

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