recent
أخبار ساخنة

مفهوم التغليف Encapsulation في لغة جافا Java الدرس|17|

الصفحة الرئيسية
Access Modifiers java

مفهوم درجات الوصول في جافا

درجات الوصول encapsulation في Java, وتعني بالترجمة الحرفية التغليف, في الدرس السابق تعرّفنا على مفاهيم البرمجة الكائنية الموجهة oop. و عرفنا ما هو Package و class و الفائدة منهم و تعرّفنا على الكائن و إنشاء كائن و الفائدة من الكائن.

في هذا الدرس سوف نتعرف على الكبسلة أو ما يعرف بتحديد درجات الوصول encapsulation إلى البيانات الموجودة بداخل الكلاس.

ومعنى درجة الوصول هي بعض الكلمات يمكننا اضافتهم عندما نضيف أشياء جديدة. مثل الدوال والكلاسات والمتغيرات من أجل تحديد طريقة الوصول إليها.

سوف نحتاج إلى إستخدام تحديد درجات الوصول encapsulation في حال كنا نعمل على برنامج كبير مع فريق برمجي.

أي يعني فإذا كنت تعمل على برنامج معين مع فريق برمجي وتريد ضمان عدة الإساءة في كود معين كتبته أنت أو أحد المبرمجين. هنا نحدد له درجة وصول وصلاحيات مقيدة للوصول إلية.

وتطرقنا لكلمة بيانات في الدرس السابق وقلنا عندما نذكر كلمة بيانات في البرمجة الكائنية الموجهة oop فإننا نقصد بها المتغيرات و الدوال.

بإستطاعتنا عندما نقوم بتحديد درجات الوصول إلى هذه المتغيرات أو الدوال ونستطيع جعل المتغير أو الدالة محمية على مستوى الكلاس.

يعني لا نستطيع الوصول إلى تلك الدالة أو المتغير إلا إذا كنا موجودين في نفس الكلاس أو نقوم بإنقاص درجة الحماية ونجعل هذا المتغير أو تلك الدالة محمية على مستوى الحزمة.

أي أننا نستطيع الوصول لذلك المتغير أو الدالة من نفس الحزمة فقط أو من أي كلاس أو نقوم بإزالة. الحماية نهائياً بحيث نستطيع الوصول للمتغير أو الدالة من نفس الحزمة أو خارج الحزمة.


درجات الوصول encapsulation في لغة جافا

  1. درجة حماية قصوى private.
  2. محمي protected و هي أنقص من السابقة.
  3. عام public يعني متاح للوصول.


الشكل العام لتعريف درجات الوصول في جافا

privaty int x=5;
protected int y=23;
public double z=28;

الأول: لا نستطيع الوصول للمتغير الا من خلال نفس الكلاس.

الثاني: نستطيع الوصول للمتغير بشرط ان نكون بنفس الحزمة فقط.

الثالث: متاح للوصول سواء من الحزمة او خارجها.


الوصول لعنصر غير محمي public في جافا

package oop;
class a
{
    private int x=5;
    protected int y=23;
    public double z=26;
}
public class Oop {
    public static void main(String[] args) {
        a ob=new a();
        System.out.println(ob.y);
    }
}

لقد انشأنا Package بإسم oop ثم بعد ذلك قمنا بإنشاء كلاس إسمه a و كان يحتوي على متغيرات بداخله تحتوي درجات الوصول الثلاثة.

و كل متغير له درجة وصول مختلفة و قيمة مختلفة و نوع بيانات مختلف ثم انشأنا كلاس آخر بإسم Oop.

ودخلنا للبرنامج الرئيسي إشتقينا كائن ob من إسم الكلاس a ثم وضعنا new تعني إنشاء نسخة من الكلاس وتخزين كل المتغيرات بداخل المتغير ob.

وعندما أتينا للطباعة عند كتابة الكائن ob ووضع نقطة سوف يقترح لنا المتغيرات y و z فقط لأن المتغير x محمي غير قادر على الوصول له.


الوصول لعنصر محمي private جافا

سنتعرف في هذه الفقرة على كيفية الوصول إلى متغير أو دالة محمية private.

والفائدة من الوصول للمتغير المحمي لأنه دائماً يتحتم علينا الوصول للمتغير المحمي لشيئين وهما تعديل في قيمة المتغير أو الحصول على قيمة مخزنة داخل المتغير.

مثلاً سوف ننشئ متغير محمي نوعه عددي ونريد الوصول له و للوصول للمتغير المحمي لا بد من إستخدام دالة وسيطة و نحن لدينا هدفين للوصول له.

package oop;
class a
{
    private int x;
    public void setx(int r)
    {
        x=r;
    }
    public int getx()
    {
        return x;
    }
}
public class Oop {
    public static void main(String[] args) {
        a ob=new a();
        ob.setx(5);
        System.out.println(ob.getx());
    }
}

لقد انشأنا Package بإسم oop ثم بعد ذلك قمنا بإنشاء كلاس إسمه a و كان يحتوي على متغير عددي إسمه x و ليس لديه قيمة في الوقت الحالي.

وبنينا دالة وسيطة عامة public void setx(int r) مهمتها أن تكون التعديل على قيمة x أو تخزين قيمة في المتغير x.

وجعلناها void لا تعيد قيمة لأننا نريد أن نرسل إليها القيمة التي نريد تخزينها في x ثم انشأنا متغير وهو x=r لتخزين القيمة التي إستقبلناها.

وأنشأنا المهمة الثانية public int getx ومهمتها تكون الحصول على قيمة x بإستخدام الدالة getx.

ثم دخلنا إلى البرنامج الرئيسي و انشأنا كائن ob من المتغير a ثم بدأنا بإرسال قيمة للمتغير x عبر. ob.setx واعطينا القيمة المرسلة هي 5 ثم كتبنا امر الطباعة بكتابة الكائن ووضع الدالة getx لطباعة القيمة.

من فوائد التغليف (الكبسلة) يمكن جعل الأشياء الموجودة في الكلاسات قابلة للقراءة أو قابلة للكتابة من قبل كلاسات خارجية
google-playkhamsatmostaqltradent