شما می توانید با عضویت در انجمن پرسش و پاسخ درسمن هرگونه سوالی دارید را مطرح کنید

Abstraction در جاوا

تاریخ بروزرسانی : جمعه 25 مرداد 1398

تعداد بازدید : 273

گروه دوره : برنامه نویسی وب

زمان خواندن مقاله : 5 دقیقه

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

Abstraction در جاوا

آشنایی با مفهوم Abstraction در جاوا

اگر به تازگی یادگیری جاوا را شروع کرده اید، پس حتما با مفهومی به نام شی گرایی یا oop برخورد کرده اید. شی گرایی یک الگو در برنامه نویسی است که برگرفته از دنیای واقعی است. وراثت(inheritance) چند ریختی  (Polymorphism) انتزاع یا تجرید (Abstraction) و کپسوله سازی (Encapsulation) چهار اصل مهم در شی گرایی هستند که ما در این نوشته به مفهوم انتزاع و نحوه پیاده سازی انتزاع در جاوا می پردازیم.

آشنایی با مفهوم انتزاع (Abstraction) :آشنایی با Abstraction

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

کلاس های Abstraction در جاوا :

در بیشتر موارد ما کلاس ها را طراحی می کنیم تا از روی آنها شئ هایی بسازیم. اما کلاس هایی وجود دارند که از آنها شئ ساخته نمی شود به این کلاس ها، کلاس های انتزاعی می گویم. هدف از ایجاد کلاس انتزاعی، ایجاد یک ابر کلاس مناسب است که می توانند یک یا چند ویژگی کلی و مشترکی را بین زیر کلاس های خود به اشتراک بگذارد.پس انتزاعی سازی می تواند به کاهش پیچیدگی کمک کند. دو روش برای پیاده سازی مفهوم Abstraction در جاوا وجود دارد:

  1. Abstract class
  2. Interface

بیایید این مفاهیم را با جزئیات بیشتری برسی کنیم.

کلاس abstract در جاوا :

برای تعریف کلاس abstract در جاوا باید از کلید واژه abstract استفاده شود. زمانی که شما یک کلاس را به صورت abstract تعریف می کنید دیگر امکان تعریف نمونه سازی از کلاس را ندارید. برای استفاده از کلاس abstract باید این کلاس توسط کلاس های دیگر به ارث برده شود.

  • در داخل این کلاس می توانیم فید ها و متد هایی را تعریف کنیم.
  • متد هایی که داخل کلاسabatract  تعریف می شوند می توانند بدون بدنه (متد های abstract) یا با بدنه (همان متد های معمولی) باشند.
  • متد هایی که با کلمه abstract تعریف می شوند فاقد بدنه هستند. در این متد ها فقط پیش الگوی متد (نام و نوع متد و پارامتر های متد) نوشته می شود. در واقع متد های abstract داخل کلاس کاری انجام نمی دهند ما فقط متد را داخل کلاس تعریف می کنیم.
  • برای استفاده از کلاس abstract در جاوا، باید این کلاس را توسط کلاسی دیگر ارث بری کنید .  کلاسی که از کلاس abstract ارث بری می کند باید تمام متد های abstract را دوباره نویسی و پیاده سازی کند یعنی بدنه توابع را تعیین کند.
  • بدنه متد abstract توسط زیر کلاس ها مشخص می شود و هر کدام از زیر کلاس ها پیاده سازی مخصوص به خود را انجام می دهند.
  • کلاس های abstract می تواند متد های معمولی یا غیر abstract داشته باشد. همان طور که می دانید متد های معمولی باید بدنه داشته باشند و نیازی به پیاده سازی ندارند.
  • با استفاده از کلاس abstract در جاوا ما می توانیم درصدی (0 تا 100 درصد) انتزاعی سازی داشته باشیم.

برای آشنایی بیشتر با این مبحث می توانید  آموزش abstract در جاوا را دنبال کنید.

Interface در جاوا :

اینترفیس در جاوا مانند یک طرح یا نقشه کلی برای کلاس می باشد. داخل interface برنامه نویس می تواند فقط متدهای abstract و بدون بدنه تعریف کند. در interface مشخصات کلی متد تعریف میشود و این کلاس های مشتق شده هستند که ملزم به پیاده سازی کامل متد ها هستند.

  • فیلد های داخل interface به صورت پیش فرض final ,static ,public هستند و متد های تعریف شده abstract ,public می باشند.
  • یکی از ویژگی های مهم interface ها فراهم سازی ارث بری چند گانه برای برنامه نویسی جاوا است. به کمک ارث بری چند گانه یک کلاس میتواند فرزند دو یا چند interface باشد.
  • مانند کلاس abstract امکان نمونه سازی از روی interface وجود ندارد.
  • با استفاده از interface ها میتوانیم 100 درصد مفهوم انتزاعی سازی را پیاده سازی کنیم.

برای یادگیری این مبحث می توانید آموزش interface در جاوا را دنبال کنید.

بنابراین، هر دو کلاس abstract و interfaceها برای پیاده سازی Abstraction در جاوا استفاده می شود و هرکدام راه حل هایی را در هنگام طراحی ارائه می دهند که هر دو راه حل از اهمیت ویژه ای برخوردار هستند. اما بهترین انتخاب برای اکثر توسعه دهندگان استفاده از interface هاست زیرا می توانند به کمک آنها مفهوم انتزاع را کامل پیاده سازی کنند.

برای آشنایی بیشتر مفهوم Abstraction در جاوا، آموزش های ویژه ای را برای شما آماده کرده ایم که با تهیه این آموزش ها به صورت رایگان می توانید تمام مباحث برنامه نویسی جاوا را همراه با مثال های کاربردی فرا گیرید. پس این فرصت فوق العاده را از دست ندهید و با درسمن سرعت یادگیری و پیشرفت خود را افزایش دهید.


اشتراک گذاری


توضیحاتی در مورد نویسنده این مقاله :
فرنوش زهره وند فرنوش زهره وند

کارشناس کامپیوتر گرایش نرم افزار


نظر بدهید

نشانی ایمیل شما منتشر نخواهد شد .
برای ارسال نظر نیاز است وارد سایت شوید. در صورت نداشتن حساب کاربری عضو شوید.

گروه مقالات


آموزشی
14
علمی
11
تحقیقاتی
12


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