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

کپسوله سازی (encapsulation) در جاوا

برای دانلود ویدئو روی دکمه دانلود کلیک کنید

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

در کپسوله سازی داده ها همون متغیرها و متدها همون کدهای ما هستند.

در شی گرایی کپسول ها کلاس ها هستند.

سطوح دسترسی در کلاس ها در جاوا

به طور کلی مبحث کپسوله سازی یا encapsulation همون ایجاد سطوح دسترسی برای داده ها و کدهاست که ما سطوح دسترسی مختلفی داریم که به صورت زیر مشاهده می کنید.

private default protected public visibility
Yes Yes Yes Yes from the same class
No Yes Yes Yes from any class in the same package
No Yes(package) Yes(package,inheritance) Yes from the subclass in the same package
No No Yes(inheritance) Yes from the subclass outside the same package
No No No Yes from the non-subclass class outside the same package

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

  • public : حالت عمومی ، در این حالت چه در داخل package و چه در خارج آن دسترسی آزاد است.
  • prrotected : حالت محافظت شده ، در صورتی در خارج package دسترسی خواهیم داشت که کلاس به ارث برده شده باشد.
  • default : حالت پیش فرض (زمانی که سطح دسترسی برای عنصر انتخاب نشه این حالت در نظر گرفته میشه) فقط در داخل package و در خارج آن قابل دسترسی نیست.
  • private : حالت خصوصی ، که فقط در داخل package و در داخل کلاس مربوطه قابل دسترسی است. یعنی حتی اگر داخل package کلاس دیگری تعریف کنیم قابل دسترسی نیست.

یک مثال از کپسوله سازی

یک بشقاب غذا را در نظر بگیرید که در داخل یخچال شما قرار دارد .

اگر بشقاب غذا تنها برای شما قابل دسترس باشد می شود حالت private یا خصوصی.

اگر کل اعضای خانواده به بشقاب غذا دسترسی داشته باشند (یعنی در زنجیره ارث بری باشد) می شود حالت protected یا محافظت شده برای خانواده .

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

get method (getters)

در مبحث کپسوله سازی در فیلدهایی از جدول بالا که سطح دسترسی براشون امکان پذیر نیست میتونیم متدهایی رو تعریف کنیم که این مقادیر رو بگیره(getters) یا تغییرشون بده(setters).

نکته : به عنوان یک عادت برنامه نویسی خوب در زمان تعریف متد به عنوان getters حتما باید متد رو با get شروع کنید و در زمان تعریف setters متد رو با set شروع کنید.

کلاس A :

کلاس B :

اشتراک گذاری :

مدرس دوره های جاوا اندروید و پایتون به صورت حضوری و مجازی

۰ دیدگاه برای کپسوله سازی (encapsulation) در جاوا

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *