freeCodeCamp/guide/arabic/java/access-modifiers/index.md

8.6 KiB

title localeTitle
Access Modifiers معدّلات الوصول

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

هل تريد أن تعرف كيف يمكن للناس الوصول إلى بعض الممتلكات الخاصة بك؟ لا تريد أي شخص يستخدم الملابس الداخلية الخاصة بك. ومع ذلك ، يمكن لأصدقائك المقربين وأقاربك استخدام سترة الخاص بك وربما سيارتك.

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

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

يمكن تطبيق معدِّلات الوصول هذه على الحقول والطرق والفئات (الفصول هي حالة خاصة ، وسوف نلقي نظرة عليها في نهاية هذا العمل الفني). في ما يلي نظرة عامة سريعة 1 على ما هي Access Levels Access Modifier لكل Access Modifier :

مرجع جدول بيانات الوصول:

جدول تعديلات الوصول

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

يسمح باستخدام متغير أو طريقة فقط في الفئة التي تم إنشاؤها فيها. لا يمكن لأي فئة أخرى خارج الفصل الدراسي الذي أنشأ المتغير أو الطريقة الوصول إليه. هذا يشبه إلى حد كبير الأجهزة الداخلية الخاصة بك. لا يمكن الوصول إليها إلا من قبل المالك. لجعل متغير أو طريقة خاصة ، يمكنك ببساطة إلحاق الكلمة الأساسية الخاصة قبل المتغير أو نوع الطريقة. دعونا نستخدم الخاصة في مثال الترميز. إذا أراد المصرف تقديم سعر فائدة بنسبة 10٪ على قروضه ، فإنه يضمن أن متغير معدل الفائدة (دعنا نفترض int int_rate; ) سيبقى خاصًا حيث لن يحاول أي فصل آخر الوصول إليه وتغييره. فمثلا؛

private String name;

ينشئ المثال أعلاه متغيرًا يسمى الاسم ويضمن أنه لا يمكن الوصول إليه إلا داخل الفئة التي تم إنشاؤها منه.

مثال آخر لطريقة هو java private void setAge(){ System.out.println("Set Age"); } يضمن المثال أعلاه إمكانية الوصول إلى الطريقة setAge فقط داخل الفئة التي تم إنشاؤها من خلالها وفي أي مكان آخر.

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

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

يمكن الوصول إلى فئة عامة أو طريقة أو متغير من أي صف آخر في أي وقت.

على سبيل المثال ، للإعلان عن فئة عامة ، كل ما تحتاج إليه هو:

`public class Animal{

} `

على هذا النحو ، يمكن الوصول إلى فئة الحيوان من أي فئة أخرى.

public int age; public int getAge(){ }

أعلاه هي طرق لتحديد متغير وطريقة عامة.

معدل الوصول الافتراضي

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

على سبيل المثال ، لاستخدام معدِّل الوصول الافتراضي لفئة ما ، يمكنك استخدامه

class Bird{ }

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

لا يمكن لأي فئة أخرى خارج الحزمة التي تم الإعلان عنها استخدام أي متغير أو طريقة أو فئة معلن عنها لاستخدام معدِّل الوصول الافتراضي.

int age; void setNewAge(){ }

أعلاه هي بعض الطرق لاستخدام معدل الوصول الافتراضي للمتغير أو الطريقة. لا تنس أن معدِّل الوصول الافتراضي لا يحتوي على كلمة أساسية. يعني غياب معدّلات الوصول الثلاثة الأخرى أنك تستخدم معدّل الوصول الافتراضي.

معدل الوصول المحمي

يرتبط معدِّل الوصول المحمي ارتباطًا وثيقًا بمعدِّل الوصول الافتراضي. يحتوي معدّل الوصول المحمي على خصائص معدِّل الوصول الافتراضي ولكن مع القليل من التحسين.

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

يجب أن تكون الفئة من حزمة أخرى والتي يمكن أن ترى المتغيرات أو الأساليب المحمية قد قامت بتوسيع الفئة التي قامت بإنشاء المتغيرات أو الطرق.

ملاحظة بدون ميزة التوارث ، يكون معد الوصول الافتراضي لديه نفس الوصول تمامًا كمعدّل وصول محمي.

فيما يلي أمثلة لاستخدام معدِّل الوصول المحمي:

protected int age; protected String getName(){ return "My Name is You"; }

الوصول إلى المعدلات في الفصول الدراسية

بشكل افتراضي ، يمكن أن تحتوي الفئات على 2 من المعدّلات:

  • عامة
  • لا يوجد معدِّل (معدِّل افتراضي)

إذاً هذا يعني أن الطبقات لا يمكن أبداً أن تكون private أو protected ؟

هذا أمر منطقي ، فلماذا تريد إنشاء صف خاص؟ لن يتمكن أي فصل آخر من استخدامها. لكن في بعض الأحيان ، يمكنك تضمين فئة في فصل آخر. يمكن تعيين هذه الفئات الخاصة ، الطبقات inner classes ، إلى خاص أو محمي بحيث يمكن الوصول إلى الفئة المحيطة بها فقط:

public class Car { private String brand; private Engine engine; // ... private class Engine { // ... } }

في المثال أعلاه ، يمكن لفئة Car فقط استخدام فئة Engine . هذا يمكن أن يكون مفيدا في بعض الحالات.

لا يمكن أبداً تعيين فئات أخرى إلى protected أو private ، لأنه لا معنى له. يتم استخدام معدِّل الوصول protected في جعل الأشياء package-private ولكن مع إمكانية الوصول إلى الفئات الفرعية. لا يوجد مفهوم مثل "subpackages" أو "package-inheritance" في جافا.

مصادر

1. مستندات أوراكل على معدِّلات الوصول