67 lines
2.9 KiB
Markdown
67 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 قيمة السمة. تأخذ طريقة الضبط معلمة وتعينها للسمة.
|
||
|
||
بمجرد أن يتم تعريف الستر والأدوات ، نستخدمها في هدفنا الرئيسي:
|
||
|
||
`public stativ void main(String[] args) {
|
||
Vehicle v1 = new Vehicle();
|
||
v1.setColor("Red");
|
||
System.out.println(v1.getColor());
|
||
}
|
||
|
||
// Outputs "Red"
|
||
`
|
||
|
||
* * *
|
||
|
||
تسمح الحروف والأصوات بالتحكم في القيم. يمكنك التحقق من صحة القيمة المحددة في أداة التحديد قبل تعيين القيمة فعليًا.
|
||
|
||
## لماذا الضيق والواضع؟
|
||
|
||
باستخدام أداة getter و setter ، يمكن للمبرمج التحكم في كيفية الوصول إلى المتغيرات الهامة وتحديثها ، مثل تغيير قيمة متغير داخل نطاق محدد. خذ بعين الاعتبار التعليمة البرمجية التالية لطريقة setter:
|
||
|
||
`public void setNumber(int num) {
|
||
if (num < 10 || num > 100) {
|
||
throw new IllegalArgumentException();
|
||
}
|
||
this.number = num;
|
||
}
|
||
`
|
||
|
||
وهذا يضمن تعيين قيمة الرقم دائمًا بين 10 و 100. إذا كان المبرمج يسمح بتحديث رقم المتغير مباشرة ، يمكن للمتصل تعيين أي قيمة عشوائية له:
|
||
|
||
`obj.number = 3;
|
||
`
|
||
|
||
هذا ينتهك القيد لقيم تتراوح بين 10 إلى 100 لهذا المتغير. نظرًا لأننا لا نتوقع حدوث ذلك ، فإن إخفاء رقم المتغير كخاصية خاصة واستخدام أداة ضبط يمنعه. من ناحية أخرى ، فإن طريقة الوسيلة هي الطريقة الوحيدة للعالم الخارجي لقراءة قيمة المتغير:
|
||
|
||
`public int getNumber() {
|
||
return this.number;
|
||
}
|
||
` |