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;
|
|||
|
}
|
|||
|
`
|