از فصل قبل آموختید که متغیرهای خصوصی
فقط میتوانند
در همان کلاس قابل دسترسی است (یک کلاس خارجی به آن دسترسی ندارد). با این حال،
اگر روشهای عمومی get و set را ارائه دهیم، امکان دسترسی به آنها وجود دارد.
روش get
مقدار متغیر را برمیگرداند و روش set
مقدار را تنظیم میکند.
نحو برای هر دو به این صورت است که آنها با get
یا set
شروع می شوند و سپس با
نام متغیر با حرف اول بزرگ:
public class Person {
private String name; // private = restricted access
// Getter
public String getName() {
return name;
}
// Setter
public void setName(String newName) {
this.name = newName;
}
}
روش get
مقدار متغیر name
را برمیگرداند.
روش set
یک پارامتر (newName
) می گیرد و به آن اختصاص می دهد
متغیر name
. کلمه کلیدی this
برای اشاره به فعلی استفاده می شود
شی.
اما، از آنجایی که متغیر name
به عنوان خصوصی
اعلام شده است، ما
نمی توان از خارج از این کلاس به آن دسترسی داشت:
اگر متغیر بهعنوان عمومی
اعلام شود، انتظار خروجی زیر را داریم:
John
اما، هنگامی که سعی می کنیم به یک متغیر خصوصی
دسترسی پیدا کنیم، با یک خطا مواجه می شویم:
MyClass.java:4: error: name has private access in Person
myObj.name = "John";
^
MyClass.java:5: error: name has private access in Person
System.out.println(myObj.name);
^
2 errors
در عوض، ما از روشهای getName()
و setName()
برای دسترسی و بهروزرسانی متغیر استفاده میکنیم. :