logo

جافا العامة مقابل الخاصة

في جافا، عام و خاص نكون الكلمات الدالة التي تعرف باسم الوصول الى المعدل أو محدد . أنه يقيد نطاق أو إمكانية الوصول إلى فئة، البناء , المتغيرات , طريقة ق، وأعضاء البيانات. ذلك يعتمد على الذي يتم تطبيقه. توفر Java الأنواع الأربعة من معدّلات الوصول: العام والخاص والمحمي ، و تقصير . ولكننا في هذا القسم سنناقش فقط أمرين عام وخاص، ونناقش أيضًا الفرق بين محدد الوصول العام والخاص مع المثال.

تتحكم معدّلات الوصول فيما إذا كان بإمكان الفئات الأخرى استخدام حقل معين أو استدعاء طريقة معينة. جافا يوفر مستويين من التحكم في الوصول:

    افضل مستوى:في هذا المستوى، يمكننا استخدام فقط عام مستوى العضو:في هذا المستوى يمكننا استخدام العام والخاص والمحمي و حزمة خاصة (إذا لم نستخدم أي معدل صريح يُعرف باسم الحزمة الخاصة).

يوضح الجدول التالي مستوى الوصول للأعضاء المسموح به بواسطة المعدلات العامة والخاصة.

زر تكنتر
جافا العامة مقابل الخاصة

لا يزال غير واضح الاختلافات بين الاثنين؟ اسمحوا لي أن أعرض لكم شكلاً يوضح كيفية تأثير مستويات الوصول على الرؤية. ويوضح الشكل التالي الحزمتين ص1 و p2 . تحتوي كل حزمة على فئتين التجريبي1 و Demo2 (في الحزمة P1)، و Demo3 و التجريبي4 (في الحزمة ص2).

جافا العامة مقابل الخاصة

يصف الجدول التالي إمكانية رؤية الفئات إذا جعلنا الفئات عامة وخاصة واحدة تلو الأخرى. في الشكل أعلاه، Demo1 هي الفئة الوحيدة المرئية لكل معدّلات وصول.

جافا العامة مقابل الخاصة

دعونا نناقش الأمر بالتفصيل.

معدّل الوصول العام

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

دعونا نستخدم محدد الوصول الخاص في ملف برنامج جافا من أجل فهم أفضل.

Demo1.java

مليون بالأرقام
 package p1; public class Demo1 { public void show() { System.out.println('Javatpoint'); } } 

Demo2.java

 package p2; import p1.*; class Demo2 { public static void main(String args[]) { Demo1 obj = new Demo1(); obj.show(); } } 

انتاج |

 Javatpoint 

معدّل الوصول الخاص

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

إم في سي مع جافا
  • لا نستطيع تجاوز الأساليب التي تم الإعلان عنها على أنها خاصة.
  • إذا استخدمنا المُعدِّل الخاص مع المنشئ، فإننا نتجنب تصنيفه ضمن فئة فرعية.
  • يقوم بإخفاء الفئات من الفئات الأخرى داخل نفسه طَرد .

دعونا نستخدم محدد الوصول الخاص في برنامج Java لفهم أفضل.

في المثال التالي، قمنا بتعريف فئتين: Demo1 وDemo2. في الفصل Demo1، قمنا بتحديد طريقة يعرض() كخاص. تحتوي الفئة Demo2 على الطريقة الرئيسية () التي أنشأنا بها كائنًا من الفئة Demo1. بعد ذلك، نحاول الوصول إلى الطريقة الخاصة للفئة Demo1 من الفئة Demo2، وهذا غير ممكن. ولكن مع ذلك، سنقوم بتنفيذ البرنامج لمعرفة الخطأ الذي يظهره.

 class Demo1 { //defining method as private private void show() { System.out.println('Javatpoint'); } } public class Demo2 { public static void main(String args[]) { Demo1 obj = new Demo1(); //trying to access private method of the class Demo1 obj.show(); } } 

عند تنفيذ البرنامج أعلاه يظهر الخطأ التالي:

جافا العامة مقابل الخاصة

الفرق بين محدد الوصول العام والخاص في جافا

الفرق الرئيسي بين المعدلات العامة والخاصة هو وضوحها. فئات Java الرؤية لأعضاء الفصل على النحو التالي:

  • الفئات الفرعية في نفس الحزمة
  • غير الفئات الفرعية في نفس الحزمة
  • فئات فرعية في حزم مختلفة
  • الفئات ليست في نفس الحزمة ولا الفئات الفرعية
جافا العامة مقابل الخاصة

أي واحد يجب أن نستخدمه؟

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