كما يقول المثل ، لا يوجد مربع أو دائرة بدون قواعد. باعتبارها لغة برمجة عالية المستوى موجهة نحو الكائنات ، تتمتع Java بشكل طبيعي بالسيطرة الصارمة على القضية المهمة بأكملها من الأذونات.
في Java ، يمكنك تعيين أذونات التحكم في الوصول من خلال بعض الكلمات الرئيسية Java ؛
تشمل بشكل أساسي خاص (خاص) ، حزمة (إذن وصول الحزمة) ، محمية (إذن وصول من الفئة الفرعية) ، والجمهور (إذن الوصول العام)
في Java ، يمكن لهذه العبارات تعديل متغيرات وأساليب الأعضاء في الفصل ، ولكن فقط الأنواع العامة والودية يمكنها تعديل الفصول. على سبيل المثال:
بعد ذلك ، دعونا نوضح بالتفصيل الاختلافات بين هذه الأذونات (يوجد جدول في نهاية المدونة) من منخفضة إلى أعلى وفقًا للأذونات: (الأذونات العالية لها جميع خصائص الأذونات المنخفضة)
خاص:
لا يمكن الوصول إلى جميع الأساليب الخاصة ومتغيرات الأعضاء في الفصل إلا في الفصل وليس في فصول أخرى.
على سبيل المثال:
الحزمة الرئيسية ؛ الفئة العامة الخاصة {private int a ؛ private int b ؛ protected () {this.a = 1 ؛ this.b = 2 ؛ // a و b لا يمكن استدعاء فقط في الفئات الخاصة} set private void () {system.out.println (""+a+""+b+"/n") ؛ودودة ومحمية:
إذا تم الإعلان عن فئة أخرى في فئة أخرى ، إذا كان هذان الاثنان في حزمة واحدة ، فيمكن للفئة الأخرى الوصول إلى المتغيرات الودية للفئة الأخرى. لا يمكن للوصول إلى الحزم المختلفة:
إذا تم الإعلان عن فئة A أخرى في فئة أخرى ب ، إذا كان هذان الاثنان في حزمة واحدة ، فيمكن أن يصل فئة أخرى أيضًا إلى المتغير المحمي (أو الطريقة) من هذه الفئة الأخرى A. الحزمة ، ثم يمكن استخدام الطريقة المحمية في B.
على سبيل المثال:
حزمة رئيسية ؛ استيراد محمية.*؛ الطبقة العامة الرئيسية {public static void main (string args []) {protected jkl = new protected () ؛ jkl.print () ؛ // استدعاء الطريقة المحمية لـ jkl parent class protly frindly = main frindly () ؛ system.out.println (prot.a) ؛ class}} package main ؛ public class frindly {int a ، b ، c ، d ؛ frindly () {a = b = c = d = 1 ؛} void set () {system.out.print ("" "+a+" "+B+"/n ") ؛ لا يمكن استدعاء محمية FOID () {this.a = 1 ؛ this.b = 2 ؛ // a و b فقط في مجموعة void المحمية}} {system.out.println (""+a+""+b+"/n") ؛} print void print () {this.set () ؛ محمية () {super () ؛ // استدعاء طريقة مُنشئ الحماية super.a = 12 في الفئة الأصل في حزمة أخرى ؛ // استدعاء متغير الحماية لفئة الأصل}}عام:
إذا كانت الطريقة أو المتغير في الفصل عامًا ، فيمكن استدعاؤها في فئات أخرى دون قيود (المستخدمة في حزمة السحب). خذ من الفئة ب في حزم أخرى
حزمة رئيسية ؛ استيراد عامة
الشكل الموجز:
| نفس الحزمة | حزم مختلفة | |||
الفئة الفرعية | غير مرغوب فيه | الفئة الفرعية | غير مرغوب فيه | ||
خاص | نعم | لا | لا | لا | لا |
ودي | نعم | نعم | نعم | لا | لا |
محمية | نعم | نعم | نعم | نعم | لا |
عام | نعم | نعم | نعم | نعم | نعم |
لخص
ما سبق هو المحتوى الكامل لهذه المقالة حول مناقشة الأنواع الأربعة من الأذونات في جافا الموجهة نحو كائن ، وآمل أن يكون مفيدًا للجميع. يمكن للأصدقاء المهتمين الاستمرار في الرجوع إلى الموضوعات الأخرى ذات الصلة على هذا الموقع. إذا كانت هناك أي أوجه قصور ، فيرجى ترك رسالة لإشارةها. شكرا لك يا أصدقائك لدعمكم لهذا الموقع!