بایگانی برچسب‌ها : access modifier

تغییر دهنده دسترسی Access Modifier

تغییر دهنده دسترسی یا Access Modifier چیست؟

تغییر دهنده دسترسی (Access Modifier) در برنامه نویسی شئ‌گرا به گونه‌ای از کلمات کلیدی اطلاق می‌شود که جهت تعیین سطح دسترسی (Access Level) به کلاس‌ها، متدها و سایر اعضا به کار می‌رود. اصطلاح تعیین کننده دسترسی (Access Specifier) نیز به عنوان معادلی برای این واژه مورد استفاده قرار می‌گیرد.

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

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

یکی دیگر از تغییردهنده‌های دسترسی که در بسیاری از زبان‌های برنامه‌نویسی امروزی مشترک و دارای مفهومی تقریبا مشابه است Protected می‌باشد. با استفاده از این کلمه کلیدی، المان موردنظر تنها در همان کلاس یا کلاس‌های مشتق شده از آن قابل دسترسی و مشاهده می‌باشد.

از جمله دیگر تعیین‌کننده‌های سطح دسترسی که در زبان C# با کلمه کلیدی internal و در زبان Visual Basic با کلمه کلیدی Friend شناخته می‌شود منجر می‌شود المان مربوطه تنها در کدهای موجود در همان اسمبلی که المان در آن تعریف شده است قابل استفاده باشد. قرارگیری کلمه کلیدی Protected پیش از این کلمات کلیدی (به صورت protected internal و Protected Friend) باعث ایجاد یک تعیین کننده دسترسی دیگر می‌شود که المان‌های تعریف شده با استفاده از آن در همان اسمبلی یا کلاس‌های مشتق شده (حتی در اسمبلی‌های دیگر) قابل استفاده می‌باشد.

در قطعه کد نمونه زیر که به زبان C# نوشته شده است نحوه استفاده از این کلمات کلیدی نمایش داده شده است.

public class Circle
  {
  private int radius;
  ...
  public void Draw() {...}
  }

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

کپسوله سازی Encapsulation

کپسوله سازی یا Encapsulation چیست؟

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

بر اساس مفهوم دوم کپسوله سازی می‌توان برخی از عناصر (فیلدها) و توابع (متدها) را از خارج از قلمرو تعریف کلاس پنهان نمود به طوری که تغییر مقدار و دسترسی به فیلدها و استفاده از متدهای یک شئ تنها توسط خود شئ امکان‌پذیر باشد. به این ترتیب برنامه نویس می‌تواند بدون درگیر شدن با اعمال و رفتار داخلی و پیچیدگی‌های این اعمال در کلاس، به اهداف خود دست پیدا کند و در عین حال از دسترسی غیرمجاز به مقادیر و اعمال خصوصی کلاس نیز جلوگیری به عمل می‌آید. گفتنی است محدودسازی سطح دسترسی در زبان‌های برنامه‌نویسی معمولا توسط تعدادی کلمه کلیدی (نظیر Private و Public) انجام می‌شود که به تغییردهنده‌های دسترسی (Access Modifier) موسوم می‌باشند.

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

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا