الهدف
Class لا يلزم أن تتيح كل بياناتها مباشرة. Access Modifiers تحدد أين يمكن الوصول إلى أعضائها.
public, private & Information Hiding
Class لا يلزم أن تتيح كل بياناتها مباشرة. Access Modifiers تحدد أين يمكن الوصول إلى أعضائها.
public: تسمح بالوصول إلى العضو من Class أخرى تستطيع الوصول إلى Class نفسها. عندما يكون age عامًا في مثالنا، تكون e1.age = 23; مسموحة.
private: تجعل الوصول للحقل من داخل Class التي عرّفته في هذا المثال. لذلك لا تستطيع TestClass كتابة e1.age عندما age خاص داخل Employee.
نجعل الحقول private، ونوفر Methods عامة تقرأها أو تعدّلها بالطريقة التي تختارها Class. هذه بداية Information Hiding، ونطبّق Getter وSetter في المرحلة التالية.
public class TestClass {
public static void main(String[] args) {
Employee e1 = new Employee();
e1.setAge(23);
System.out.println(e1.getAge());
}
}public class Employee {
private int age;
public void setAge(int a) { age = a; }
public int getAge() { return age; }
}private لا تعني أن الحقل لا يمكن تغييره أبدًا. يمكن لـMethods داخل Class تغييره. كتابة e1.age من TestClass ستفشل إذا ظل الحقل private.
غيّر age، ثم بدّل private وpublic. افتح Employee.java وقارن سطر تعريف الحقل مع طريقة استخدامه في TestClass.java.
محاكاة لهذا المثال المحدد، وليست تشغيلًا لكود Java عشوائي.