71 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | ||
| title: Getters & Setters
 | ||
| localeTitle: رسائل ورسائل
 | ||
| ---
 | ||
| # رسائل ورسائل
 | ||
| 
 | ||
| يتم استخدام Getters و Setters لحماية بياناتك بشكل فعال ، خاصة عند إنشاء الفصول الدراسية. لكل متغير مثيل ، ترجع طريقة getter قيمته في حين تقوم أداة setter بتعيين أو تحديث قيمتها. يُعرف أيضًا "Getters" و "setters" كـ accessors و mutators ، على التوالي.
 | ||
| 
 | ||
| من خلال الاتفاقية ، يبدأ getters بالحصول على ، متبوعًا باسم المتغير ، مع الحرف الأول من اسم المتغير بالأحرف الكبيرة. تبدأ الحروف بمجموعة ، متبوعة باسم المتغير ، مع الحرف الأول من اسم المتغير بالأحرف الكبيرة.
 | ||
| 
 | ||
| **_مثال:_**
 | ||
| 
 | ||
|  `public class Vehicle { 
 | ||
|   private String color; 
 | ||
|  
 | ||
|   // Getter 
 | ||
|   public String getColor() { 
 | ||
|   return color; 
 | ||
|   } 
 | ||
|  
 | ||
|   // Setter 
 | ||
|   public void setColor(String c) { 
 | ||
|   this.color = c; 
 | ||
|   } 
 | ||
|  } 
 | ||
| ` 
 | ||
| 
 | ||
| ترجع طريقة getter قيمة السمة. تأخذ طريقة الضبط معلمة وتعينها للسمة.
 | ||
| 
 | ||
| بمجرد أن يتم تعريف الستر والأدوات ، نستخدمها في هدفنا الرئيسي:
 | ||
| 
 | ||
| ```java
 | ||
| public stativ void main(String[] args) {
 | ||
|   Vehicle v1 = new Vehicle();
 | ||
|   v1.setColor("Red");
 | ||
|   System.out.println(v1.getColor());
 | ||
| }
 | ||
| 
 | ||
| // Outputs "Red"
 | ||
| ``` 
 | ||
| 
 | ||
| * * *
 | ||
| 
 | ||
| تسمح الحروف والأصوات بالتحكم في القيم. يمكنك التحقق من صحة القيمة المحددة في أداة التحديد قبل تعيين القيمة فعليًا.
 | ||
| 
 | ||
| ## لماذا الضيق والواضع؟
 | ||
| 
 | ||
| باستخدام أداة getter و setter ، يمكن للمبرمج التحكم في كيفية الوصول إلى المتغيرات الهامة وتحديثها ، مثل تغيير قيمة متغير داخل نطاق محدد. خذ بعين الاعتبار التعليمة البرمجية التالية لطريقة setter:
 | ||
| 
 | ||
| ```java
 | ||
| public void setNumber(int num) {
 | ||
|     if (num < 10 || num > 100) {
 | ||
|         throw new IllegalArgumentException();
 | ||
|     }
 | ||
|     this.number = num;
 | ||
| }
 | ||
| ``` 
 | ||
| 
 | ||
| وهذا يضمن تعيين قيمة الرقم دائمًا بين 10 و 100. إذا كان المبرمج يسمح بتحديث رقم المتغير مباشرة ، يمكن للمتصل تعيين أي قيمة عشوائية له:
 | ||
| 
 | ||
| ```java
 | ||
| obj.number = 3;
 | ||
| ``` 
 | ||
| 
 | ||
| هذا ينتهك القيد لقيم تتراوح بين 10 إلى 100 لهذا المتغير. نظرًا لأننا لا نتوقع حدوث ذلك ، فإن إخفاء رقم المتغير كخاصية خاصة واستخدام أداة ضبط يمنعه. من ناحية أخرى ، فإن طريقة الوسيلة هي الطريقة الوحيدة للعالم الخارجي لقراءة قيمة المتغير:
 | ||
| 
 | ||
| ```java
 | ||
| public int getNumber() {
 | ||
|     return this.number;
 | ||
| }
 | ||
| ``` |