توسط
Omid Zakeri
access modifier ها مشخص می نمایند که چه اطلاعات و داده هایی از یک کلاس برای کلاسهای دیگر قابل دسترس باشد. برای کلاسها وفیلدهاوConstructor ها و متدها می توان سطح دسترسی تعیین کرد.
یکی از ویژگیهای برنامه نویسی شی گرایی کپسوله سازی می باشد که توسط Access Modifier ها قابل پیاده سازی است.
انواع access modifier ها:
۱-public
۲-private
۳-default
۴-Protected
public:
اگر کلاسی public باشد از هر جایی می توان به آن دسترسی داشت.
حتی اگر کلاسها درون پکیج های جدا از هم قرار داشته باشند هم باز قابل دسترسی خواهند بود.
Private:
کلاس ها و فیلد هایی که private هستند نمیتوانند توسط کلاس ها وinterface های دیگر به آنها دسترسی داشت. و فقط درون کلاس تعریف شده قابل دستیابی هستند.
Default:
اگر از هیچ access modifier ای هنگام تعریف کلاس ها و متد ها استفاده نکنیم جاوا حالتdefault را برای آن در نظر می گیرد که در این حالت این کلاس ها و متدها تنها توسط کلاس هایی که درون همان پکیج هستند قابل دسترسی می باشد.در واقع به این حالت package access modifier هم می گویند.
Protected:
این حالت همانند default می ماند با این تفاوت که sub class ها (یعنی کلاس هایی که از این کلاس ارث بری کردند)هم می توانند به این کلاس دسترسی داشته باشند.
مثال:
class Test {
int a; // default access
public int b; // public access
private int c; // private access
// methods to access c
void setc(int i) { // set c's value
c = i;
}
int getc() { // get c's value
return c;
}
}
class AccessTest {
public static void main(String args[]) {
Test ob = new Test();
// These are OK, a and b may be accessed directly
ob.a = 10;
ob.b = 20;
// This is not OK and will cause an error
// ob.c = 100; // Error!
// You must access c through its methods
ob.setc(100); // OK
System.out.println("a, b, and c: " + ob.a + " " +
ob.b + " " + ob.getc());class AccessTest {
public static void main(String args[]) {
Test ob = new Test();
// These are OK, a and b may be accessed directly
ob.a = 10;
ob.b = 20;
// This is not OK and will cause an error
// ob.c = 100; // Error!
// You must access c through its methods
ob.setc(100); // OK
System.out.println("a, b, and c: " + ob.a + " " +
ob.b + " " + ob.getc());
}
}
}
}
نکته :درون این برنامه به دلیل اینکه c به صورت private تعریف شده نمی توان مستقیم به آن دسترسی داشت برای دسترسی به این فیلد باید از متد های setc, getc استفاده نمود.
کلمه کلیدی (this):
گاهی اوقات متدها نیاز ارجاع به شیئی را دارند که آنها را فعال (ایجاد) کرده است به همین منظواز کلمه کلیدی this در جاوا استفاده می نماییم.با استفاده از this در هر متد می توان به شیء جاری ارجاع نمود.در متدها و متد سازنده (Constructor) از this استفاده می شود.
برای درک بهتر موضوع به مثال زیر توجه نمایید:
Box(double w, double h, double d) {
this.width = w;
this.height = h;
this.depth = d;
}
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .