اگه میخوای موارد زیر از جاوا رو بدونی جلسه بیست و ششم رو دانلود کن
Encapsulation(کپسوله سازی)
شروع با مثال از دنیای واقعی برای درک بهتر مفهوم
نحوه Encapsulation (کپسوله سازی) یک کلاس در جاوا
متد setter
متد getter
روش ایجاد متد getter برای یک متغیر بصورت کلی
کاربرد متد getterو setterدر Encapsulation (کپسوله سازی)
گام به گام با مفهوم Encapsulation (کپسوله سازی)
مزیت های Encapsulation(کپسوله سازی)
راهنمای تصویری ایجاد متد getter و setter برای متغیرهای کلاس
تمامی مفاهیم با مثال از دنیای واقعی و مثال ساده کد جاوا توضیح داده شده است
Encapsulation (کپسوله سازی) یکی از چهار مفهوم اساسی برنامه نویسی شی گرایی است.سه مفهوم دیگر شامل وراثت،چندریختی و انتزاعمی شود.
Encapsulation (کپسوله سازی) در جاوا فرآیند بسته بندی متغیر ها و متدها است.
در Encapsulation (کپسوله سازی) متغیرهای نمونه یک کلاس از دید کلاس های دیگر پنهان میمانند.و این متغیرها تنها از طریق متدهای کلاس مون قابل دسرس هستند.بنابراین این متغیرها به متغیرهای مخفی شناخته شده هستند.
خب توضیحات خشک و خالی مون تمام شد مثلا میخواستیم بصورت رسمی ی توضیحاتی در مورد این مفهوم داده باشیم 😊
جناب Encapsulation (کپسوله سازی) کارش اینه که اطلاعات یک کلاس یعنی متغیرها و متدهای یک کلاس را طوری بسته بندی و باندپیچی میکنه و گره کوری میزنه بهش 😊 که هیچ کلاس دیگه نتونه اطلاعات کلاس مون رو دید بزنه 😊
خب کمی واضع تر توضیح میدی؟ وقتی شما یک کلاس تعریف کرده و تعدادی متغیر نمونه در بدنه ان تعریف میکنید بعد از شی سازی از کلاسون در کلاسی دیگر ،ما از طریق این شی ایجاد شده میتوانیم به راحتی به متغیرهای کلاسمون دسرسی پیدا میکنیم.خب این حالت عادی و معمولی هست که با شی ایجاد شده از یک کلاس در کلاسی دیگر میتوانستیم به راحتی به متغیرهای آن کلاس دسرسی پیدا کنیم.خب وقتی از مفهوم Encapsulation (کپسوله سازی) در کلاسمون استفاده کنیم فرآیندی اتفاق میافتد که تمام متغیرها و متدهای کلاسمون بسته بندی شده و دیگر کلاسی بیگانه نمیتواند به متغیرها یا متدهای کلاسمون حتی با ایجاد شی از نوع کلاسمون دسرسی پیدا کند.
مثال از دنیای واقعی:
متداول ترین مثالی که همه در آموزش Encapsulation (کپسوله سازی) در جاوا میزنند مثال داروی کپسول در پزشکی هست.
کپسول های دارویی همه ما با آن آشنا هستیم و حداقل یکبار هم که شده آنها را مصرف کرده ایم!
این کپسول هایی که ما برای درمان بیماری نظیر سرماخوردگی و... مصرف میکنیم، ترکیب تعدادی داروی دیگر در یک بسته واحد به نام کپسول است. مثال تصویر (1)
همان طور که در تصویر(1) مشخص هست تعدادی داروی کوچک و ریز در یک بسته واحد به نام کپسول بسته بندی شده است.
این بسته بندی کپسولی مزیت هایی نظیر سهولت استفاده یعنی بجای مصرف تک به تک دانه های ریز دارو مستقیم یک دانه کپسول را میتوانیم مصرف کنیم بدون این که محتوای کپسول را ببینیم. از دیگر مزیت های بسته بندی کپسولی امنیت ان هست شما مستقیم به محتوای درون کپسول دسرسی ندارید و فقط یک کپسول واحد را میبینید و مصرف میکنید اگر شما مستقیم به محتوای ریز درون کپسول دسرسی پیدا کنید و آن همه محتوای ریز را دست بگیرید و تک تک مصرف کنید امکان افتادن دانه ها روی زمین یا آلودگی دانه های دارو وجود دارد پس بهتر است همون یک دانه واحد کپسول را با یک آب بزنیم به رگ 😊
Encapsulation (کپسوله سازی) در جاوا نیز همین مفهوم بالا را دنبال میکند یعنی شما متغیرها و متدهای کلاس خودتون را در یک بسته واحد کپسوله و بسته بندی میکنید.تصویر(2)
تصویر(2) شکل کپسوله سازی متغیرها و متدها ها را در یک کلاس مشاهده میکنید.متغیرها و متدها به دانه های ریز درون کپسول و کلاس به عنوان یک کپسول واحد تشبیه شده است. با این کار دیگر مستقیم نمیتوانیم به متغیرها و متدهای کلاسمون در کلاسی دیگر دسرسی داشته باشیم.
پس تا اینجا مفهوم Encapsulation (کپسوله سازی) را یادگرفتیم حالا سراغ نکات پیاده سازی این مفهوم در جاوا میریم.
نحوه Encapsulation (کپسوله سازی) یک کلاس در جاوا:
• همه متغیرهای نمونه کلاس را از نوع private تعریف میکنیم.
• خب وقتی متغیرها را در کلاسمون از نوع private تعریف کردیم دیگه فرآیند بسته بندی انجام شده و کلاس های دیگر بصورت مستقیم نمیتوانند به متغیرهای کلاسمون دسرسی پیدا کنند،خب حالا چطور کلاس های دیگه میتوانند به متغیرهای کلاس ما دسرسی داشته باشند؟!!!
پاسخ: از طریق متدهای public (عمومی) setter ( ست کننده ،مقدار دهی کننده) و getter (گیرنده،مقدار دهنده) میتوان به متغیرها دسرسی پیدا کرد و مقدار آنها را تغییر داد و مقدار های متغیرها را مشاهده کرد.خب ما تاحالا به متدهای setter و getter برخورد نداشته ایم حالا میخوایم این دو متد را بررسی کنیم:
متد setter :
همان طور که از اسم این نوع متدها مشخص هست برای مقداردهی، ست کردن و نسبت دادن مقداری به یک متغیر استفاده میشود.
ما در گذشته برای مقداردهی کردن متغیری خاص نام ان را صدا میزدیم و مستقیم به آن مقداری را نسبت میدادیم.حالا برای مقداردهی کردن متغیری بصورت غیر مستقیم از متدهای setter استفاده میکنیم.
...ادامه این جلسه آموزشی را میتوانید بصورت کتاب الکترونیکی (PDF شده) در لینک زیر دریافت کنید.
این جلسه آموزشی را بصورت کامل و مرتب شده در لینک زیر دانلود کنید:(در صورت خرابی لینک گزارش دهید)
لینک دانلود
نشر این مطلب با ذکر منبع (لینک سایت) بلامانع است.
برای با خبر شدن از جدیدترین مطالب آموزشی جاوا عضو کانال تلگرام ما شوید.
بستن *نام و نام خانوادگی * پست الکترونیک * متن پیام |
دوره های آموزشی برنامه نویسی
انجام پروژه های برنامه نویسی
تدریس خصوصی برنامه نویسی
بیش از 7 سال از فعالیت جاواپرو میگذرد
جاواپرو دارای مجوز نشر دیجیتال از وزارت فرهنگ و ارشاد اسلامی است
جهت ارتباط مستقیم با جاواپرو در واتساپ و تلگرام :
09301904690