التغليف Encapsulation هي طريقة للتحكم في اخفاء البيانات اي الصفات في الاصناف. وتعطينا القدرة في التجكم بقراءة او تعديل الصفات. ولكي نطبقها نحتاج ان نجعل الصفات خاصة private attributes حيث لا نستطيع قراءنها او تعديلها من خارج الصنف. وفي المقابل نعرف طرق داخل الصنف لا تكون private وهي التي تتحكم في كيفية قراءة وتعديل البيانات.
تشغيلclass Person{ // private الصفات وتكون خاصة private int age; private String name; private String address; Person(int age, String name, String address){ this.age = age; this.name = name; this.address = address; } // خارج الصنف age نستطيع قراءة الصفة public int getAge(){ return age; } // خارج الصنف age نستطيع تعديل الصفة public void setAge(int age){ // نستطيع التحكم في التعديل ووضع شروط معينة على القيم if(age < 0 ){ this.age = 0; }else{ this.age = age; } } // خارج الصنف و لا نستطيع تعديلها لاننا لم نعرف طريقة لذلك name نستطيع قراءة الصفة public String getName(){ return name; } // خارج الصنف و لا نستطيع قرائتها لاننا لم نعرف طريقة لذلك address نستطيع تعديل الصفة public void setAddress(String address){ this.address = address; } } class Main{ public static void main(String[] args){ Person p = new Person(25,"Ahmed", "55 Street"); // private لانها p.age لا نستطيع استخدام //p.age; //error System.out.println(p.getAge()); // 25 p.setAge(26); System.out.println(p.getAge()); // 26 // private لانها p.name لا نستطيع استخدام System.out.println(p.getName()); // Ahmed // private لانها p.address لا نستطيع استخدام p.setAddress("60 street"); } }
جرت العادة في الجافا عند قراءة البيانات او تعديلها نستخدم طرق اسمها: الاّخذ (getter) و الواضع (setter). ويكون طريقة كتابتها getXXX و setXXX ونستبدل ال XXX باسم الصفة مع جعل اول حرف فيها كبير (capital) كما في المثال السابق.
0 تعليقات