شعار زيفيرنت

معدّلات الوصول في Java – 2023

التاريخ:

جدول المحتويات

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

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

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

تحتوي JAVA على نوعين من المعدلات: معدلات الوصول و معدّلات عدم الوصول.

ما هي معدلات الوصول؟

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

أربعة أنواع من معدّلات الوصول

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

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

يجب أن تتعلم مفاهيم جافا

دعونا نرى أي من أعضاء Java يمكن تعيينهم باستخدام معدّلات الوصول:

أعضاء جافا خاص الترتيب محمي عام
مبوبة لا نعم لا نعم
متغير نعم نعم نعم نعم
خدمة التوصيل نعم نعم نعم نعم
منشئ نعم نعم نعم نعم
الواجهة لا نعم لا نعم
كتلة التهيئة غير مسموح

الآن دعونا نفهم نطاق هذه معدلات الوصول بمساعدة الجدول:

إمكانية الوصول خاص الترتيب محمي عام
نفس الحزمة نفس الصف نعم نعم نعم نعم
بدون ميراث لا نعم نعم نعم
بالميراث لا نعم نعم نعم
حزمة مختلفة بدون ميراث لا لا لا نعم
بالميراث لا لا نعم نعم

دعونا نفهم بمزيد من التفاصيل:

أيضا، تحقق أهم أسئلة وأجوبة مقابلة جافا للطلاب الجدد

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

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

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

لذلك سنقوم هنا بتجميع خطأ الوقت.

دعونا نرى لمنشئ خاص:

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

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

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

دعونا نفكر في مثال لمعدل الوصول الافتراضي.

لدينا هنا حزمتان مختلفتان p1 وp2. في الحزمة p1، لدينا فئة A1 حيث أعلنا عن متغير افتراضي وطريقة افتراضية. نحاول الآن الوصول إلى هذا المتغير والطريقة من خارج الحزمة الموجودة في الحزمة p2 والتي تحتوي على فئة A2. 

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

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

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

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

دعونا نفكر في مثال لمعدل الوصول المحمي. 

لدينا هنا حزمتان p1 وp2. في الحزمة p1 لدينا الفئة A1 حيث أعلنا عن طريقة اختبار محمية. في الحزمة p2، نحن نرث أعضاء الفئة A1 داخل الفئة A2 بمساعدة توسيع الكلمات الأساسية وإنشاء علاقة بين الفئتين. يمكننا أيضًا أن نقول أن الفئة A1 هي الفئة الأصلية أو الفئة الفائقة والفئة A2 هي الفئة الفرعية أو الفئة الفرعية على التوالي.

عندما نرث أفراد الفئة A1 داخل الفئة A2 بمساعدة أ معدل الوصول المحمي يمكننا الوصول إلى أعضاء الفئة A1 من الحزمة p1 من الفئة A2 من الحزمة المختلفة p2.

حتى هنا نحصل على الإخراج كما مرحبا أنا من طريقة محمية. 

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

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

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

ويتضمن أيضًا الوصول داخل نفس الحزمة وأيضًا من خارج الحزمة. يمكن الوصول إلى الأعضاء مثل المتغيرات والأساليب وأعضاء البيانات الآخرين على مستوى العالم. 

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

دعونا الآن نفكر في مثال لمعدل الوصول العام.

هنا في هذا المثال، لدينا حزمتان مختلفتان p1 وp2. في p1 لدينا فئة a1 حيث أعلنا عن متغير وكلمة أساسية عامة مسبوقة بالطريقة. وفي الحزمة p2، لدينا فئة A2 حيث نحاول الوصول إلى أعضاء الفئة A1 بدون وراثة.

هنا نحصل على الإخراج كما 10 و مرحبا أنا من الطريقة العامة.

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

NOTE: إذا كان أي مطور آخر يستخدم صفك، فحاول استخدام معدل الوصول الأكثر تقييدًا. وحاول أيضًا استخدام مُعدِّل الوصول الخاص، حيثما كان ذلك ضروريًا.

إمكانية الوصول الشاملة:

خاص

معدّلات الوصول إلى JAVA مع تجاوز الطريقة

عند تجاوز طريقة ما، يجب ألا تكون الطريقة التي تم تجاوزها مقيدة.

فمثلا:

في المثال أعلاه، تم تجاوز طريقة الاختبار في الفئة A2. لكن يجب أن تتمتع طريقة الفئة الفرعية بنفس الرؤية أو رؤية أكثر من طريقة الطبقة الفائقة. نظرًا لأن طريقة الفئة الفرعية لها نطاق أقل من طريقة الفئة الفائقة، فقد حصلنا على خطأ في وقت الترجمة.

يشير الانخراط في دراسة برمجة Java إلى وجود اهتمام كبير بمجال تطوير البرمجيات. بالنسبة لأولئك الذين يشرعون في هذه الرحلة مع التطلعات نحو العمل في هذا المجال، يوصى باستكشاف الصفحات التالية من أجل الحصول على فهم شامل للمسار الوظيفي للتطوير:

معدّل الوصول في الأسئلة الشائعة حول Java

ما هي معدّلات الوصول في Java؟

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

ما هي الأنواع الأربعة لمعدلات الوصول إلى Java وكيف تختلف؟

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

ما هي معدّلات الوصول مع الأمثلة؟

فيما يلي أمثلة لمعدلات الوصول في Java:
// معدل الوصول العام
الطبقة العامة PublicClass {
public int publicField;
الفراغ العام publicMethod() {
// الكود هنا
}
}
// معدل الوصول المحمي
فئة محمية فئة محمية {
محمية int protectedField؛
الفراغ المحمي protectedMethod() {
// الكود هنا
}
}
// معدل الوصول الافتراضي (الحزمة الخاصة).
الفئة الافتراضية {
int defaultField;
الطريقة الافتراضية الباطلة () {
// الكود هنا
}
}
// معدل الوصول الخاص
فئة خاصة {
كثافة العمليات الخاصة الحقل الخاص؛
باطلة خاصة طريقة خاصة () {
// الكود هنا
}
}

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

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

ما هي معدّلات الوصول في OOP؟

تحدد معدّلات الوصول في البرمجة كائنية التوجه (OOP) إمكانية الوصول إلى المكونات المختلفة للفئة ورؤيتها. أنها توفر التحكم في مستوى التغليف والتفاعل بين أجزاء مختلفة من البرنامج، وتعزيز التغليف والتصميم المعياري.

ما هو الخاص مقابل المحمي مقابل العام؟

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

ما هو المحمي مقابل الخاص؟

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

ما هو محدد الوصول؟

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

بقعة_صورة

أحدث المعلومات الاستخباراتية

بقعة_صورة