PDA

View Full Version : سوال: نحوه استفاده از Visibility Modifires



irpersian20
یک شنبه 04 مرداد 1394, 23:37 عصر
سلام
دوستان در مورد Protected مگر ، فقط ان Type که ازش مشتق شده، دسترسی بهش نداره؟
پس اینجا که ما ارث بری نکردیم اما بیریم خطا بلرنامه اجرا میشه

public class man
{
protected class to
{


}


public class oon
{ to t = new to(); }
}

RmeXXXXXXXXX
دوشنبه 05 مرداد 1394, 10:49 صبح
در تعریف متغیرهای کلاسی اگر modifier تعیین نگردد بصورت پیشفرض private در نظر گرفته میشود.
در تعریف to t = new to(); هیچ نوع دسترسی مشخص نشده. پس خصوصی است و مجاز.
سعی کنید اینچنین بنویسید: public to t = new to();

SabaSabouhi
دوشنبه 05 مرداد 1394, 11:23 صبح
سلام
دوستان در مورد Protected مگر ، فقط ان Type که ازش مشتق شده، دسترسی بهش نداره؟
پس اینجا که ما ارث بری نکردیم اما بیریم خطا بلرنامه اجرا میشه

public class man
{
protected class to
{


}


public class oon
{ to t = new to(); }
}


سلام
این access modifier مربوط به بیرون از کلاس man می‌شه. چون کلاس oon داخل کلاس man هست به کلیه‌ی اعضا
دسترسی کامل داره. حتا اگه کلاس to به شکل private هم بود، باز دسترسی کامل داشت.
در ضمن وقتی یه مثال اینجا می‌گذاری از نام‌گذاری مناسب‌تری استفاده کن.

صبا صبوحی

RmeXXXXXXXXX
دوشنبه 05 مرداد 1394, 11:44 صبح
کلاس های Nested برای امور خاص و ایجاد کلاس های تودرتو استفاده میشوند و توصیه میشه که حدالمقدور استفاده نشوند.
در هر حال شما از بیرون کلاس man به هیچ وجه نمیتونید به کلاس to دسترسی داشته باشید (ولی به کلاس oon می تونید) حتی با ایجاد کلاسی عمومی مثل oon و تا زمانی که این قانون نقض نشه هیچ خطای مرتبط نیز دریافت نخواهید کرد.

irpersian20
دوشنبه 05 مرداد 1394, 14:53 عصر
در تعریف متغیرهای کلاسی اگر modifier تعیین نگردد بصورت پیشفرض private در نظر گرفته میشود.
در تعریف to t = new to(); هیچ نوع دسترسی مشخص نشده. پس خصوصی است و مجاز.
سعی کنید اینچنین بنویسید: public to t = new to();

سلام
نوع پیش فرض در صورتی که مشخص نشود،internal است.

irpersian20
سه شنبه 06 مرداد 1394, 17:45 عصر
آخر نوع پیش فرض internal شد یا private ??

SabaSabouhi
چهارشنبه 07 مرداد 1394, 08:16 صبح
آخر نوع پیش فرض internal شد یا private ??

سلام
بستگی داره.
اگه یک کلاس رو در نظر داری، پیش‌فرض internal هست. اما اگه اعضای کلاس مثل propertyها یا متدها
در نظرت هستن، پیش‌فرض private هست.

صبا صبوحی