از فصل قبل آموختید که متغیرهای خصوصی فقط میتوانند
در همان کلاس قابل دسترسی است (یک کلاس خارجی به آن دسترسی ندارد). با این حال،
اگر روشهای عمومی 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() برای دسترسی و بهروزرسانی متغیر استفاده میکنیم. :