قبل أن نتعمق في هذا المفهوم، عليك أن تكون على دراية بالفئات
والتغليف في Java
.
التغليف في جافا
التغليف، كما يوحي الاسم، هو عملية تضمين البيانات والأساليب كوحدة واحدة. في البرمجة الموجهة للكائنات ، يتم جعل أعضاء البيانات الخاصة بالفئة خاصة لتقييد الوصول المباشر إليهم. لذلك لا يمكن استرجاع أعضاء البيانات المغلفة أو تعديلها دون طريقة محددة بشكل صحيح. لهذا، قمنا بتعريف طرق الوصول والمحوّل في Java. دعونا نلقي نظرة على هذه الأساليب بالتفصيل.ما هي Accessors و Mutators في جافا؟
الملحقات
اسم طريقة الوصول مدفوع بكلمة " الوصول " التي تسمح للمستخدم بالوصول إلى المعلومات الخاصة في الفصل الدراسي. إذا كنت قد سمعت من قبل عن طريقة " get " أو " getters "، فهي نفس طريقة الوصول. يقوم الحاصلون على استرداد المتغيرات والثوابت الخاصة للوصول إليها خارج نطاق الفصل الدراسي.بناء الجملة
نحن نستخدم الكلمة الأساسية " get " لوصولات Java. للوصول إلى المتغير " name " يمكننا استخدام getName() التالي . للحصول على مثال أسلوب الوصول، قم بإلقاء نظرة على ما يلي.public class Student {
private String name;
public String getName() {
return name;
}
}
يرجى ملاحظة أن كل getter لديه الكلمة الأساسية " get " قبل اسم المتغير في توقيع الطريقة ونوع الإرجاع هو نفس نوع المتغير الذي سيتم إرجاعه. نظرًا لأن المتغير " name " من النوع " String "، فإن طريقة getter/accessor تُرجع أيضًا " String ".
الطفرات
تعتمد طريقة mutator في Java على كلمة "mutate"، والتي تعني حرفيًا التعديل. تسمح Mutators للمستخدمين بتعيين/تعديل قيمة المتغيرات الخاصة لكائن الفئة. في سياق البرمجة الموجهة للكائنات، تُعرف طريقة " set " أو " setters " أيضًا باسم "mutors". تقوم أدوات الضبط بتسهيل التغليف حيث لا يمكن تعديل أعضاء البيانات الخاصة مباشرة. لذلك يتم استخدام أساليب/طفرات الضبط لتحديث قيمة المتغير خارج نطاق الفصل.بناء الجملة
بالنسبة للمتحولين، نستخدم الكلمة الأساسية " set ". يتم تعريف كل أداة ضبط بالكلمة الأساسية "set" متبوعة باسم المتغير الذي يحتاج إلى التحوير. هنا، نستخدم setName () setName الذي يأخذ متغير نوع السلسلة كمعلمة.public class Student {
private String name;
public void setName(String name) {
this.name = name;
}
}
لماذا نحتاج إلى Accessors و Mutators؟
نحن بحاجة إلى أدوات getters وSetters أو Accessors وmutors لحماية المعلومات الحساسة في الفصل الدراسي. المعلومات محمية من الاستخدام غير القانوني باستخدام هذه الطرق القياسية. علاوة على ذلك، يمكن أيضًا التحقق من صحة مجموعة البيانات في المحوّل إذا كانت تفي بجميع متطلبات البرنامج.أمثلة على Accessor و Mutator
باستخدام فئة الطلاب أدناه، دعونا نلقي نظرة على أمثلة لطرق الوصول والمحوّل.مثال
import java.util.Arrays;
public class Student {
private String name;
private Integer ID;
private String DOB;
private double GPA;
private String[] courses;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getID() {
return ID;
}
public void setID(Integer iD) {
this.ID = iD;
}
public String getDOB() {
return DOB;
}
public void setDOB(String dOB) {
this.DOB = dOB;
}
public double getGPA() {
return GPA;
}
public void setGPA(double gPA) {
this.GPA = gPA;
}
public String[] getCourses() {
return courses;
}
public void setCourses(String[] courses) {
this.courses = courses;
}
public static void main(String[] args) {
Student student1 = new Student();
System.out.println("Student Bio [ Before using Accessors & Mutators ]");
// calling accessor methods
System.out.print("Name: " + student1.getName());
System.out.print("\tID: " + student1.getID());
System.out.print("\tGPA: " + student1.getGPA());
System.out.print("\tDOB: " + student1.getDOB());
System.out.println("\tCourses: " + Arrays.toString(student1.getCourses()));
// calling mutator methods
student1.setName("Alex Coy");
student1.setID(3115);
student1.setGPA(2.79);
student1.setDOB("08/08/1998");
String[] courses = { "Object Oriented Programming", "Cryptography", "Photography", "Network Security" };
student1.setCourses(courses);
System.out.println("\nStudent Bio [ After using Mutators & Accessors ]");
// calling accessor methods
System.out.print("Name: " + student1.getName());
System.out.print("\tID: " + student1.getID());
System.out.print("\tGPA: " + student1.getGPA());
System.out.print("\tDOB: " + student1.getDOB());
System.out.println("\tCourses: " + Arrays.toString(student1.getCourses()));
}
}
انتاج |
السيرة الذاتية للطالب [ قبل استخدام المحولات والملحقات ] الاسم: null المعرف: null المعدل التراكمي: 0.0 تاريخ الميلاد: null المقررات الدراسية: null السيرة الذاتية للطالب [ بعد استخدام المحولات والملحقات ] الاسم: Alex Coy ID: 3115 المعدل التراكمي: 2.79 تاريخ الميلاد: 08/08/1998 الدورات: [البرمجة الشيئية، التشفير، التصوير الفوتوغرافي، أمن الشبكات]
GO TO FULL VERSION