Final در متدها

پرسیده شده
فعالیت 1326 روز پیش
دیده شده 481 بار
0

سلام

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

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

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

 

فایل پیوست

ابوالفضل رضایی
ابوالفضل رضایی

23 شهریور 99

2
حذف شده

سلام و احترام

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

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

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

public final double PI = 3.14;

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

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

موفق باشید.

فایل پیوست

پوریا شفیعی

توسط

پوریا شفیعی

23 شهریور 99

حذف شده
آهان... اوکی، حواسم به اون نکته نبود.. مرسی از شما
ابوالفضل رضایی

24 شهریور 99