شرح Getters and Setters في Java

يتم استخدام أدوات التسجيل والمحددات لحماية بياناتك ، خاصة عند إنشاء الفئات.

لكل متغير حالة ، ترجع طريقة getter قيمتها بينما تعيّن طريقة setter قيمتها أو تحدّثها. ونظرا لهذا، ومن المعروف حاصل على واضعي أيضا يمكنهم الدخول و mutators ، على التوالي.

حسب الاصطلاح ، يبدأ المحاضر بكلمة "get" ويبدأ بكلمة "set" متبوعًا باسم متغير. في كلتا الحالتين ، يتم كتابة الحرف الأول من اسم المتغير بحروف كبيرة:

public class Vehicle { private String color; // Getter public String getColor() { return color; } // Setter public void setColor(String c) { this.color = c; } }

طريقة getter تُرجع قيمة السمة. تأخذ طريقة setter معلمة وتقوم بتعيينها إلى السمة.

بمجرد تحديد getter و setter ، نستخدمه في:

public static void main(String[] args) { Vehicle v1 = new Vehicle(); v1.setColor("Red"); System.out.println(v1.getColor()); } // Outputs "Red"

يسمح الحاصلون والمحددون بالتحكم في القيم. يمكنك التحقق من صحة القيمة المقدمة في المحدد قبل تعيين القيمة بالفعل.

لماذا استخدام الحاصل والضوابط؟

يسمح لك المحصلون والمحددون بالتحكم في كيفية الوصول إلى المتغيرات المهمة وتحديثها في التعليمات البرمجية الخاصة بك. على سبيل المثال ، ضع في اعتبارك طريقة الإعداد هذه:

public void setNumber(int number) { if (number  10) { throw new IllegalArgumentException(); } this.number = num; }

باستخدام setNumberالطريقة ، يمكنك التأكد من أن قيمة المتغير numberدائمًا ما بين 1 و 10. وهذا أفضل بكثير من تحديث numberالمتغير مباشرةً:

obj.number = 13;

إذا قمت بالتحديث numberمباشرة ، فمن المحتمل أن تتسبب في آثار جانبية غير مقصودة في مكان آخر في التعليمات البرمجية الخاصة بك. هنا ، الضبط numberعلى 13 ينتهك القيد من 1 إلى 10 الذي نريد تأسيسه.

إن numberعمل متغير خاص واستخدام setNumberالطريقة سيمنع حدوث ذلك.

من ناحية أخرى ، الطريقة الوحيدة لقراءة قيمة numberهي باستخدام طريقة getter:

public int getNumber() { return this.number; }