دریافت و تنظیم کنید(Get and Set)

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



مثال


public class MyClass {
  public static void main(String[] args) {
    Person myObj = new Person();
    myObj.name = "John";  // error
    System.out.println(myObj.name); // error 
  }
}





اگر متغیر به‌عنوان عمومی اعلام شود، انتظار خروجی زیر را داریم:





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() برای دسترسی و به‌روزرسانی متغیر استفاده می‌کنیم. :



مثال


public class MyClass {
  public static void main(String[] args) {
    Person myObj = new Person();
    myObj.setName("John"); // Set the value of the name variable to "John"
    System.out.println(myObj.getName());
  }
}

// Outputs "John"