دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۱۴
  • مهر

جلسه ۲۳ : کلاس های انتزاعی در جاوا

  • دسته‌بندی‌ها :
جلسه ۲۳ : کلاس های انتزاعی در جاوا
    • جزئیات
    • نوع محتواآموزش تصویری

      مقدمه

      با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرنو کاربرانی که دوره کامل آموزش برنامه نویسی جاوا را دنبال می کنند. abstraction (انتزاع)، در واقع کیفیت و روش انجام یک عمل بدون در نظر گرفتن اقداماتی که در پشت پرده انجام می شود است. به عنوان مثال،اگر شما سیستم ایمیل را در نظر بگیرید، به محض ارسال ایمیل ، پروتکل استفاده از سرور ایمیل شما از کاربر پنهان است. بنابراین، برای ارسال ایمیل شما فقط نیاز به تایپ محتوا، اشاره به آدرس گیرنده، و کلیک کردن روی ارسال را دارید. و به همین ترتیب در برنامه نویسی شیء گرا، انتزاع یک فرایند پنهان کردن جزئیات پیاده سازی از کاربر است و فقط عملکرد شیء به کاربر ارائه می شود، حالا برای آشنایی با کلاس های انتزاعی در جاوا در ادامه ی مباحث با ما همراه باشید.

      آشنایی با کلاس های انتزاعی در جاوا

      در ادامه ی مباحث آشنایی با کلاس های انتزاعی در جاوا ما شما را با مفاهیم اولیه ی کلاس های انتزاعی در جاوا آشنا خواهیم کرد.

      همچنین با ارائه ی مثال هایی از کد جاوا درک مطلب را برای شما ساده تر می کنیم.

      در جاوا، انتزاع با استفاده از کلاس ها و رابط های انتزاعی به دست می آید.

      Abstract classe (کلاس انتزاع)

      یک کلاس که حاوی کلمه ی abstract در اعلامیه خود است، به عنوان کلاس انتزاعی شناخته می شود.

      • کلاسهای خلاصه ممکن است شامل متد abstract ، یعنی متد بدون بدنه (public void get ()؛) باشد.
      • اما اگر یک کلاس دارای حداقل یک متد انتزاعی باشد، کلاس باید انتزاعی باشد.
      • اگر یک کلاس انتزاعی اعلام شود، نمی توان آن را ثابت کرد.
      • برای استفاده از یک کلاس انتزاعی، شما باید آن را از کلاس دیگری به ارث برسانید.
      • اگر شما یک کلاس انتزاعی را به ارث برده اید، شما باید تمام پیاده سازی های انتزاعی را در آن انجام دهید.

      مثال –  برای ایجاد یک کلاس انتزاعی، فقط از کلید واژه abstract قبل از کلمه کلیدی class ، در اعلان کلاس استفاده کنید:

      مثال : 

      شما می توانید ببینید که به غیر از متدهای انتزاعی کلاس کارمند همان کلاس عادی در جاوا است.

      کلاس در حال حاضر انتزاعی است، اما هنوز دارای سه فیلد، هفت متد و یک سازنده است.

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

      مثال : 

      هنگامی که کلاس بالا را کامپایل می کنید، خطای زیر را به شما می دهد:

      مثال : 

      ارث بری در کلاس انتزاعی

      ما می توانیم خواص کلاس Employee درست مثل کلاس concrete به صورت زیر به ارث بریم:

      مثال : 

      در اینجا نمیتوانید کلاس Employee را اکتیو کنید، اما می توانید کلاس Salary را اکتیو کنید.

      با استفاده از این مثال می توانید تمام سه فیلد و هفت متد کلاس Employee را در زیر مشاهده کنید:

      مثال : 

      نتیجه ی اجرای کد فوق بصورت زیر خواهد بود:

      مثال : 

      متدهای انتزاعی

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

      • کلید واژه abstractبرای اعلام متد به عنوان متد انتزاعی استفاده می شود.
      • شما باید کلید واژه abstract را قبل از نام متد در اعلام متد قرار دهید.
      • در انتهای یک متد انتزاعی، یک سمی کولون (؛) وجود دارد.

      مثال زیر تعریف یک متد انتزاعی را نشان می دهد:

      مثال : 

      اعلام یک متد به عنوان انتزاعی دارای دو نتیجه است:

      کلاس حاوی آن باید به عنوان انتزاعی اعلام شود.

      هر کلاسی که از کلاس فعلی به ارث می برد کلاس فعلی باید هر دو متد را لغو کند یا خودش را انتزاع کند.

      در نهایت، یک کلاس descendant باید متد انتزاعی را اجرا کند؛ در غیر این صورت، شما یک سلسله مراتب از کلاسهای انتزاعی دارید که نمیتوان آن را ثابت کرد.

      فرض می کنیم که کلاس Salary خواص کلاس Employee را به ارث می برد،سپس باید از متد ()computePay بصورت زیر استفاده کنید:

      مثال : 

      کلام آخر

      در این بخش یاد گرفتیم که چه طور با استفاده از کلاس های انتزاعی در جاوا یک کلاس یا متد را بدون در نظر گرفتن جزئیات آن ایجاد کرده و از ارث بری کنیم. مباحث بخش بعدی را به کپسوله سازی در جاوا اختصاص می دهیم.

      QR:  جلسه ۲۳ : کلاس های انتزاعی در جاوا
      به اشتراک بگذارید