مطالعه‌ی شش فصل گذشته به شما کمک می‌کند تا مقدمات زبان برنامه‌نویسی C# را فراگرفته و در نهایت کدنویسی خود را آغاز کنید. حال در این فصل قصد داریم یک مقدار مباحث آموزشی را تخصصی تر کرده تا قبل از ورود به دنیای بسیار پر رمز و راز برنامه‌نویسی دقت عمل بالایی را کسب کنید تا بتوانید کدهای بهینه و در عین حال قابل دسترس را در اختیار داشته باشید. مفهومی که در این فصل در مورد آن صحبت می‌کنیم پیرامون مبحث کپسوله سازی یا Encapsulation و تعیین سطح دسترسی یا Access Modifier ها در زبان برنامه‌نویسی C# است.

مقدمه

کپسوله‌سازی یا Encapsulation در برنامه‌نویسی کامپیوتر مفهومی است که عموما در کلاس‌ها و به عنوان یکی از مبانی و اصول برنامه‌نویسی شیءگرایی (OOP که مخفف عبارت Object Oriented Programming است) می‌باشد.

به صورت روان‌تر و ساده‌تر می‌توان مطرح کرد که کپسوله سازی به معنی دسته‌بندی  (کپسوله کردن) داده‌ها و توابعی (متدها) است که روی این داده‌ها اعمال می‌شوند. به عبارت دیگر با استفاده از کپسوله سازی دسترسی مستقیم برنامه‌نویسان به متدها و سایر المان‌های یک شیء محدود می‌شود.

بالاتر از مفهوم کپسوله سازی با معنی‌ای به نام انتزاع یا Abstraction‌ آشنا می‌شویم.

انتزاع به معنای اجازه دادن به یک کاربر یا برنامه‌نویس برای مشاهده اطلاعات مربوط به یک کلاس یا شیء است و کپسوله سازی به معنای فراهم کردن توانایی یک برنامه‌نویس برای سطح‌بندی کردن این دید انتزاعی نسبت به اشیاء است.

قبل از ورود به مبحث کپسوله سازی باید خدمت شما عزیزان مطرح کنم که در فصل بعدی با مفاهیم کلاس‌ها و اشیاء به تفصیل آشنا خواهید شد و هدف از این فصل اشنا شدن شما عزیزان با مفاهیمی چون کپسوله سازی و Access Modifier ها است. بنابراین اگر کدی برای شما ناملموس است اصلا نگران نباشید زیرا در فصل بعدی به صورت کامل پوشش لازم را خواهیم داشت.

برای اجرای کپسوله سازی یا Encapsulation از تغییردهنده‌های دسترسی یا (Access Modifier) استفاده می‌کنیم. این تغییردهنده‌ها معمولا روی اعضای یک کلاس تاثیر می‌گذارند. زبان برنامه‌نویسی C# از چندین تغییردهنده دسترسی پشتیبانی می‌کند که به شرح ذیل می‌باشد:

  • دسترسی Public (عمومی)
  • دسترسی Private (خصوصی)
  • دسترسی Protected (محافظت‌شده)
  • دسترسی Internal (داخلی)
  • دسترسی Protected Internal (محافظت شده‌ی داخلی)

سطح دسترسی عمومی (Public Access Modifier)

این سطح دسترسی زمانیکه روی یک کلاس اعمال می‌شود، اعضاء و توابع متغییر آن را در اختیار سایر توابع و اشیاء می‌گذارد. هر عضو عمومی (Public) می‌تواند خارج از آن کلاس نیز در دسترس باشد. به مثال زیر توجه کنید: