menusearch
javapro.ir

♨️ جلسه بیست و یکم - کلمه کلیدی final

جستجو
جمعه ۲۳ آذر ۱۴۰۳ | ۰:۳۰:۱۲
۱۳۹۵/۱۰/۳۰ پنج شنبه
(7)
(0)
♨️ جلسه بیست و یکم - کلمه کلیدی final
♨️ جلسه بیست و یکم - کلمه کلیدی final

فهرست جلسات دوره مقدماتی جاوا

مقدمه اول | جاوا چیست؟

مقدمه دوم | تاریخچه جاوا

مقدمه سوم | ویژگی‌های زبان جاوا

جلسه اول | راهنمای دانلود و نصب JDK

جلسه دوم | اجرای یک برنامه جاوا در Notepad

جلسه سوم | راهنمای دانلود و نصب Eclipse

جلسه چهارم | ساخت اولین برنامه جاوا در Eclipse

جلسه پنجم | متغیر ها در جاوا

جلسه ششم | تغییر فونت محیط Eclipse

جلسه هفتم | عملگر‌های پایه ای جاوا

جلسه هشتم | دستورات شرطی

جلسه نهم | اشیا و کلاس ها

جلسه دهم | ورودی گرفتن

جلسه یازدهم | حلقه‌های کنترلی

جلسه دوازدهم | کلمه کلیدی static

جلسه سیزدهم | کلاس Math

جلسه چهاردهم | کلاس String

جلسه پانزدهم | آرایه‌های یک بعدی

جلسه شانزدهم | کنترل سطح دسرسی (Modifiers)

جلسه هفدهم | متدها در جاوا

جلسه هجدهم | کلمه کلیدی this

جلسه نوزدهم | کلاس‌های داخلی

جلسه بیستم | ارث بری در جاوا

جلسه بیست و یکم | کلمه کلیدی final

جلسه بیست و دوم | Overriding در جاوا

جلسه بیست و سوم | Polymorphism( چند ریختی)

جلسه بیست و چهارم | چندریختی را بهتر یادبگیرید

جلسه بیست و پنجم | Abstraction( انتزاع)

جلسه بیست و ششم | Encapsulation(کپسوله سازی)

جلسه بیست و هفتم | اینترفیس (Interface)

جلسه بیست و هشتم | کلاس Random

جلسه بیست و نهم | Exceptions (استثناها)

جلسه سی ام | کار با فایل در جاوا(Files and I/O)

جلسه سی و یکم | کلاس InputStreamReader

جلسه سی و دوم | کلاس OutputStreamWriter

جلسه سی و سوم | کلاس BufferedReader

جلسه سی و چهارم | کلاس BufferedWriter

جلسه سی و پنجم | Serialization در جاوا

جلسه سی و ششم | چندنخی(Multithreading)

جلسه سی و هفتم | آرایه دو بعدی در جاوا

جلسه سی و هشتم | کلاس ArrayList در جاوا

جلسه سی و نهم | Non Access Modifier در جاوا

 

دوره رایگان مقدماتی زبان جاوا

 

کلمه کلیدی final برای محدود کردن کاربر استفاده می‌شود.کلمه کلیدی final جاوا را می‌توان در همه زمینه ها استفاده کرد.
کلمه کلیدی final در موارد زیر استفاده می‌شود:


1. کلاس
2.متدها
3.متغیرها

 

تعریف یک متغیر از نوع final

نحوه نوشتن یک متغیر از نوع فاینال بصورت زیر است:

 

final int variable;

 

همان طور که گفتیم کلمه کلیدی final برای متغیر ها بکار می‌رود،وقتی یک متغیر از نوع final تعریف و مقدار دهی اولیه می‌شود دیگر در تمام بخش های برنامه مقدار این متغیر ثابت و غیر قابل تغیر خواهد بود.

 

package javalike ;

public class Rahman {

   final int a = 5;

   public static void main(String[] args) {

       Rahman r = new Rahman();
       r.a = 6;
       System.out. print ln(r.a);
   }
}

 

خروجی:

 

خطای کامپایل!!!!!!
 

همان طور که گفتیم یک متغیروقتی از نوع final تعریف و مقداردهی اولیه می‌شود در تمام بخش های برنامه اجازه تغییر مقدار متغیر را نخواهیم داشت. در این کد برنامه چون متغیر a از نوع final و مقدار اولیه ان 5 بوده و در متد main قصد تغییر مقدار این متغیر را داشته ایم برنامه خطای کامپایل داده.

پس اگر ما یک متغیر را از نوع final تعریف کردیم ،دیگه در بخش های برنامه نمی‌توانیم مقدار متغیر را تغییر دهیم. به این متغیری که نوع final تعریف بشه به اصلاح به ان متغیر ،متغیر ثابت یا constant می‌گویند.


تعریف یک متد از نوع final
نحوه نوشتن یک متد از نوع فاینال بصورت زیر است:

 

public final void myMethod(){
   
}

 

اگر شما یک متد را از نوع final تعریف کردید،دیگر این متد را نمی‌توان override کرد!!!

 

 

میدونم این مفهوم ناآشناست، صرفا جهت مقدمه چینی گفتم، در جلسه بعد مفصل در مورد override صحبت خواهیم کرد پس مثال و توضیح را به جلسه ای که کاملا مربوط به override هستش واگذار میکنیم.
این override خوب یادتون باشه پس :-)


وقتی یک کلاس را final تعریف میکنم!
اگر شما یک کلاس را final تعریف کنید ،دیگر نمی‌توانید آن را به ارث ببرید!

 

package javalike;


final class Bike {
}

class Honda1 extends Bike {
   void run() {
       System.out. print ln("running safely with 100kmph");
   }

   public static void main(String args[]) {
       Honda1 honda = new Honda();
       honda.run();
   }
}

 

خروجی:
 
     خطای کامپایل!!!!!!!!!

                                                         

✔ در اینجا چون کلاس Bike از نوع final هستش دیگه نمی‌توان این کلاس توسط کلاس دیگر به ارث برده شود.

 


آیا متدی که از نوع final تعریف شود را می‌توان به ارث برد؟
پاسخ: بله،متد final را می‌توان به ارث برد اما نمی‌توان آن را override کرد.

 

 

package javalike ;

class Bike {
   final void run() {
       System.out. print ln("running...");
   }
}

class Honda2 extends Bike {
   public static void main(String args[]) {
       new Honda2().run();
   }
}

 

✔ در اینجا کلاس Honda2 کلاس Bike را به ارث برده است.

 

 

✔ متد run درون کلاس Bike از نوع final هستش. همان طور که میدونید کلاس Honda2 کلاس Bike را به ارث برده است یعنی به تمام متدها و متغیرهای آن دسرسی دارد.و در این جا با ساختن شی از کلاس Honda2 متد run را با وجود final بودن صدا زدیم و هیچ مشکلی پیش نیامد.

آیا می‌شود یک متغیر از نوع final را هنگام تعریف خالی یا بدون مقدار ایجاد کنیم؟
بله.تنها در یک صورت می‌شود یک متغیر از نوع final بدون مقدار دهی اولیه ایجاد کرد،وقتی متغیر خود را از نوع final تعریف کردید در سازنده کلاس خود آن متغیر را مقدار دهی کنید.

 

package javalike ;

public class Rahman {

   final int a;

   Rahman() {
       a = 5;
   }

   public static void main(String[] args) {

       Rahman r = new Rahman();

       System.out.print ln(r.a);
   }
}

 

خروجی:

 

5
 

✔ اینجا متغیر a را از نوع final بدون مقدار دهی اولیه تعریف کرده ایم.برای این که برنامه ما دچار خطای کامپایل نشود تنها راه ما برای مقدار دهی به متغیر از نوع final درون سازنده کلاس هستش که در اینجا متغیر a در سازنده کلاس مقدار 5 را بهش نسبت داده ایم.

 

✔ این نکته را در نظر بگیرید تنها در صورتی میشود یک متغیر از نوع final را درون سازنده کلاس مقداردهی کرد که مقدار اولیه متغیر final ما خالی باشد.همان طور که می‌بینید متغیر a هنگام تعریف به ان هیچ مقداری داده نشده و به اصلاح خالی است.


وقتی یک متغیر هم از نوع final باشد هم از نوع sataic:
بله.اگر متغیر ما از نوع final و static و همچنین هنگام تعریف آن را مقدار دهی اولیه نکردیم و به اصلاح خالی بود دیگر نمی‌توان در سازنده کلاس آن را مقدار دهی کرد و تنها راه مقدار دهی آنها این هست که در یک بلوک استاتیک آن متغیر را مقدار دهی کنیم!!!


•    دوستان اینو در نظر بگیرید بعضی از مفاهیم کاربرد و استفاده زیاد نداره مثل همین عنوان اما حالا امکان داره در برنامه خود به ان برخورد کنید گفتمش وگرنه من خودم هم هیچ علاقه ای بهش ندارم :-)


یادآوری:
نحوه نوشتن بلوک استاتیک بصورت زیر است:

 

   static {
       
   }

 

✔ ابتدا کلمه استاتیک بعد دو بلوک یا آکولاد {} را باز و بسته می‌کنیم و می‌توانیم دستورات خود را درون بدنه و دربین دو آکولاد بنویسیم.

 

 package javalike ;

public class Rahman {

   final static   int a;

   static {
       a = 5;
   }

   public static void main(String[] args) {

       Rahman r = new Rahman();

       System.out. print ln(r.a);
   }
}

 

خروجی:

 

  5
 

✔ در اینجا متغیر a هم از نوع final هستش و هم از نوع static ،چون هنگام تعریف مقدار دهی اولیه نشده و خالی است،تنها راه مقدار دهی آن در بخشی از برنامه این است که درون یک بلوک استاتیک آن را مقداردهی کنیم.

 

میخواستم فقط ی سوالی کرده باشم و این که آیا میشه یک سازنده را از نوع final تعریف کنیم؟! 😁 خیر

آرزوی پیروزی برای شما دوست عزیز :-)


این جلسه آموزشی را بصورت مرتب شده در لینک زیر دانلود کنید:(در صورت خرابی لینک گزارش دهید)

آموزش آسان و ساده زبان برنامه نویسی جاوا

لینک دانلود

 

 


نشر این مطلب با ذکر منبع (لینک سایت) بلامانع است.
برای با خبر شدن از جدیدترین مطالب آموزشی جاوا عضو کانال تلگرام ما شوید.

 

instagram
نظرات کاربران
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

بستن
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

1 نظر
ابوالفضل سلمانی از کاشان
شنبه بیست و ششم فروردین ۹۶
پاسخ
(1)
()
ابوالفضل سلمانی از کاشان
سلام همه ی آموزش های شما عالی هستند ،‌ تشکر میکنم
پاسخ مدیر سایت
سلام.از نظر لطفتون سپاسگزارم
پاسخ مدیر سایت
هدر سایت
مشاهده سرفصل ها و ثبت نام در دوره Spring Boot جاواپرو  [کلیک کنید]
آموزش پروژه محور اسپرینگ بوت(Spring Boot)-سیستم دانشگاه
ثبت نام در دوره آموزش Spring security
دوره معماری میکروسرویس ها (Microservices) با استفاده از Spring Boot و Spring Cloud
دوره پرتاب | آموزش پیش نیازهای برنامه نویسی
دوره آموزش مبانی زبان برنامه نویسی جاوا
دوره آموزش مفاهیم پیشرفته زبان برنامه نویسی جاوا
مقدمه ای از زبان برنامه نویسی جاوا(java)
آموزش زبان برنامه نویسی جاوا
آموزش گرافیک در زبان برنامه نویسی جاوا
آموزش مدیریت چیدمان گرافیکی در زبان جاوا
آموزش ساخت بازی دوبعدی در زبان جاوا
Collection ها در زبان برنامه نویسی جاوا
آموزش پروژه محور ساخت برنامه مدیریت بانک با JavaFX
نمونه پروژه های رایگان زبان جاوا
آموزش دیتابیس در زبان برنامه نویسی جاوا
نمونه مثال پایه ای زبان برنامه نویسی جاوا
نمونه مثال String در زبان برنامه نویسی جاوا
آموزش جامع برنامه نویسی JavaFX
آموزش ساخت برنامه آزمون تستی در JavaFX
آموزش برنامه نویسی سوکت در جاوا
آموزش ساخت برنامه دفترچه تلفن با JavaFX
آموزش ساخت ربات ساده تلگرام با زبان جاوا
آموزش ساخت برنامه ماشین حساب با JavaFX
آموزش ساخت برنامه ساده مدیریت ایمیل ها با JavaFX
دوره آموزش Spring Boot
سفارش انجام پروژه زبان برنامه نویسی جاوا(JAVA)
سفارش انجام پروژه برنامه نویسی متلب(MATLAB) با قیمت منصفانه و تحویل به موقع
سفارش انجام پروژه زبان برنامه نویسی سی شارپ (#C)
سفارش انجام پروژه زبان برنامه نویسی سی(C)
سفارش انجام پروژه زبان برنامه نویسی پایتون(Python)
سفارش انجام پروژه زبان برنامه نویسی PHP (پی اچ پی)
سفارش انجام پروژه زبان برنامه نویسی اسمبلی(Assembly)
سفارش انجام پروژه زبان برنامه نویسی جاوا اسکریپت (Javascript)
سفارش انجام پروژه هوش مصنوعی
سفارش انجام پروژه طراحی الگوریتم
سفارش انجام پروژه ساختمان داده ها
سفارش انجام پروژه مهندسی نرم افزار
سفارش انجام پروژه شبکه های کامپیوتری
سفارش انجام پروژه پایگاه داده: دیتابیس (database)
 سفارش انجام پروژه سیستم عامل
سفارش انجام پروژه پاورپوینت(PowerPoint)
سفارش انجام پروژه اکسل (Excel)
سفارش انجام تحقیق و تهیه مقاله
سوالات متداول برنامه نویسی
جدیدترین مطالب
گفتگو را شروع کنید
مشاوره ،تدریس خصوصی و سفارش انجام انواع پروژه های برنامه نویسی