دسترسی به اصلاح کننده ها
به طور پیشفرض، همه
فیلدهاو
روشها یک کلاس در جاوا
خصوصی هستند. یعنی هیچکس نمی تواند به آنها دسترسی داشته باشد، یعنی خارج از اشیاء این کلاس، هیچ متدی نمی تواند از فیلدها و متدهای اشیاء این کلاس استفاده کند.
فیلدها و روش ها را می توان با
تغییرکننده دسترسی public
عمومی کرد. همچنین یک اصلاح کننده
private
وجود دارد که فیلد را خصوصی می کند. این اختیاری است زیرا تمام فیلدها و روش ها به طور پیش فرض خصوصی هستند. در اینجا نمونه ای از استفاده از اصلاح کننده های
public
و
private
آورده شده است.
کتاب کلاسی
{
نام رشته عمومی;
نام نویسنده رشته;
خصوصی int ageRequirement;
متن رشته
عمومی int pageCount;
int getTextLength()
{
طول متن بازگشتی();
}
عمومی int getAverageLetterCount()
{
بازگشت getTextLength() / pageCount;
}
private int getDifficuiltyLevel()
{
بازگشت 5 * ageRequirement * text.Length();
}
}
در این نسخه از کلاس Book
، فیلدهای name
و pageCount
برای خواندن و اصلاح در اشیاء دیگر عمومی می شوند. متد getAverageLetterCount()
نیز برای فراخوانی از اشیاء کلاسهای دیگر موجود است. تمام فیلدها و متدهای دیگر خصوصی باقی می مانند و فقط در متدهای این کلاس موجود هستند. در متد عمومی getAverageLetterCount()
می توانیم متد خصوصی را getTextLength()
فراخوانی کنیم زیرا getAverageLetterCount()
به خود کلاس تعلق دارد. اما از روشی از کلاس دیگر کار نخواهد کرد.
اما چرا پس زمینه ها را خصوصی کنیم؟ در کد جاوا، بیشتر فقط فیلدهای خصوصی را خواهید دید. واقعیت این است که اگر دسترسی به فیلدهای خصوصی از طریق روش های عمومی شی انجام شود، با هر گونه دسترسی به فیلدهای خصوصی می توان اقدامات و بررسی های اضافی را انجام داد. بیشتر در مورد این در درس در مورد کپسوله سازی خواهد بود.