مردان وردپرس شی گرایی شی گرایی در PHP بخش سوم : میدان دید

%d8%b4%db%8c-%da%af%d8%b1%d8%a7%db%8c%db%8c-%d8%af%d8%b1-php-%d8%a8%d8%ae%d8%b4-%d8%b3%d9%88%d9%85-%d9%85%db%8c%d8%af%d8%a7%d9%86-%d8%af%db%8c%d8%af-wpmen

در قسمت قبلی در خصوص شی گرایی و چیستی آن صحبت کردیم و در آخر یک مثال از ساخت کلاس و شی را توضیح دادیم در این قسمت می خواهیم در خصوص میدان دید ( Scope )  در شی گرایی صحبت کنیم موضوع بسیار مهمی که در بحث های امنیتی بسیار به کار می آید و مدیریت برنامه نیز کمک شایانی می کند با مردان وردپرس همراه باشید.

 

تعریف و معنای Scope :

مشخص می کند که دسترسی به اعضا ( member )  کلاس یا object برای سایر کلاس ها ، object ها و فضای عمومی برنامه به چه صورت است. در کل سه نوع میدان دید داریم به نام های Public , Protected , Private که به طور کلی در باره آنها توضیح می دهیم.

  • Public : آزاد ترین حالت ممکن می باشد که در تمام کلاس های دیگر قابل دسترسی می باشد.
  • Protected : متد  محافظت شده در تمامی کلاس و زیرکلاسهای تعریف شده قابل دسترس است. یا بطور ساده متد یا متغیر محافظت شده فقط در همان کلاس یا کلاسهایی که از آن مشتق می شوند قابل دسترس است و خارج از کلاس نمی توان به آن دسترسی داشت.
  • Private : در Private  یا خصوصی متد در همان کلاس قابل دسترسی می باشد معمولا تمامی متغیر های یک کلاس را به صورت private به کار می بریم و برای دسترسی به آنها از توابع دسترسی Get و Set استفاده می کنیم.

 

تفاوت protected و private :  از private نمیتوان در ارث بری استفاده کرد اما از protected می توانیم در ارث بری استفاده کنیم

در ارث بری راجع به تفاوت این دو دوباره صحبت خواهیم کرد.

مثالی از به کارگیری میدان دید در کلاس :

 

نکته : طبق اصل Encapsulation تمام property های خود کلاس یا object نباید public باشند.  اینکه متغیرهای در خارج از کلاس در دسترس باشند، خلاف  قانون کپسوله نمودن (Encapsulation) در شی  گرایی است.

نکته : از متد protected نمی توان به صورت مستقیم خروجی گرفت.

در قسمت بعدی در خصوص کلمه کلیدی This صحبت خواهیم کرد

تاریخ آخرین بروزرسانی : ۲ آذر ۱۳۹۵
منبع :‌ مردان وردپرس
میلاد میلادی

باور هایت را که پرورش دهی به هرچیزی دست خواهی یافت.

Advertising MiSaCo.

نظرات خود را اینجا بنویسید

آدرس الکترونیکی شما نمایش داده نمی شود *

Time limit is exhausted. Please reload CAPTCHA.