معدل جافا الوصول (وحدة تحكم الوصول)
تتحكم Java في حقوق الوصول ووظائف الفئات والخصائص والأساليب الأخرى من خلال المعدلات ، وعادة ما يتم وضعها في الواجهة الأمامية للبيان. على سبيل المثال:
classname classname من الفئة العامة {// body of class} myflag myflag الخاص الثابت ؛هناك العديد من المعدلات في Java ، مقسمة إلى معدلات الوصول ومعدلات غير وصول. يقدم هذا القسم فقط معدلات الوصول ، وسيتم تقديم معدلات غير الوصول لاحقًا.
تسمى معدلات الوصول أيضًا أحرف التحكم في الوصول ، والتي تشير إلى الكلمات الرئيسية التي يمكنها التحكم في حقوق استخدام الفئات ومتغيرات الأعضاء والأساليب.
تعد وحدات التحكم في الوصول مفهومًا مهمًا في البرمجة الموجهة للكائنات ويمكن استخدامها لحماية الوصول إلى الفئات والمتغيرات والأساليب والمشاركات.
تدعم Java أربعة أذونات وصول مختلفة:
الجمهور: عام
يمكن الوصول إلى الفئات والأساليب والمقدمات والواجهات التي تم الإعلان عنها كجمهور من قبل أي فئة أخرى.
إذا تم توزيع العديد من الفئات العامة التي يتم الوصول إليها من قبل بعضها البعض في حزم غير مستخدمة ، فأنت بحاجة إلى استيراد الحزمة التي توجد بها الفئة العامة المقابلة. نظرًا لميراث الفصل ، يمكن أن تورث جميع الأساليب العامة والمتغيرات من الفصل بواسطة فئاته الفرعية.
تستخدم الطريقة التالية التحكم في الوصول العام:
الفراغ الثابت العام الرئيسي (سلسلة [] وسيطات) {// body of method} يجب تعيين طريقة () Main () لبرنامج Java على الأماكن العامة ، وإلا فلن يتمكن مترجم Java من تشغيل الفصل.
محمية: محمية
يمكن الوصول إلى المتغيرات والأساليب والمنشآت المعلنة حسب الحماية بواسطة أي فئة أخرى في نفس الحزمة ، أو عن طريق الفئات الفرعية في حزم مختلفة.
لا يمكن إعلان المعدل المحمي للوصول إلى الفئات والواجهات.
يمكن للفئات الفرعية الوصول إلى الطرق والمتغيرات المعلنة بواسطة المعدلات المحمية ، بحيث يمكنها حماية الطبقات غير ذات الصلة من استخدام هذه الأساليب والمتغيرات.
تستخدم الفئة الأصل التالية معدل الوصول المحمي ، وتؤدي الفئة الفرعية إلى زيادة التحميلات التي تعمل بها اللحاء () لفئة الأصل.
الكلب العام {protected void bark () {system.out.println ("wow ، لا تأتي") ؛ ، أنا خائف جدًا ، لا تتبعني ") ؛}} إذا تم إعلان طريقة Bark () على أنها خاصة ، فلن تتمكن فئات أخرى غير الكلب من الوصول إلى الطريقة. إذا تم الإعلان عن Bark () علنًا ، يمكن لجميع الفئات الوصول إلى الطريقة. إذا كنا نريد أن تكون الطريقة مرئية فقط للفئة الفرعية للفئة التي يقع فيها ، أعلن الطريقة المحمية.
خاص: خاص
تعتبر معدلات الوصول الخاصة هي أفضل مستوى وصول صارم ، لذلك لا يمكن الوصول إلى الأساليب والمتغيرات والمشاركات المعلنة على أنها خاصة إلا من خلال الفصل الذي ينتمون إليه ، ولا يمكن إعلان الفصول والواجهات على أنها خاصة.
لا يمكن الوصول إلى المتغيرات المعلنة كنوع وصول خاص إلا من خلال فئات خارجية من خلال أساليب Getter/Setter العامة في الفصل.
يستخدم استخدام المعدل الخاص للوصول الخاص لإخفاء تفاصيل تنفيذ الفصل وحماية بيانات الفصل.
يستخدم الفصل التالي معدل وصول خاص:
الكلب العام {اسم السلسلة الخاصة ؛ (int age) {this.age = Age ؛في المثال ، تكون متغيرات الاسم والعمر في فئة الكلاب متغيرات خاصة ، لذلك لا يمكن للفئات الأخرى الحصول على قيمة المتغير مباشرة وتعيينها. لتمكين فئات أخرى من معالجة المتغير ، يتم تعريف أزواج من الأساليب العامة ، getName ()/setName () و getage ()/setage () ، والتي تستخدم للحصول على قيم المتغيرات الخاصة وتعيينها.
هذه كلمة رئيسية في Java.
يعد تحديد طرق الوصول إلى المتغيرات الخاصة في الفصل أمرًا عاديًا لتسمية هذا الأمر: البادئة "GET" أو "SET" في الاسم المتغير ، والاستفادة من الحرف الأولي للمتغير. على سبيل المثال ، طريقة الحصول على اسم المتغير الخاص هو getName () ، وطريقة تعيين الاسم هي setName (). غالبًا ما يتم استخدام هذه الطرق ولها أسماء محددة ، تسمى أساليب getter و setter.
الافتراضي: لا يتم استخدام كلمات رئيسية
لا يوجد معدل معلّر للخصائص والأساليب مرئية للفئات داخل نفس الحزمة. يتم الإعلان عن جميع المتغيرات في الواجهة ضمنيًا على أنها نهائية ثابتة عامة ، في حين أن الأساليب في الواجهة تكون عامة بشكل افتراضي.
كما هو موضح في المثال التالي ، لا يستخدم تعريف الفئات والمتغيرات والأساليب أي معدلات:
class dog {string age ؛ سيد ، أنا جائع ") ؛}}التحكم في الوصول والميراث
يرجى ملاحظة القواعد التالية للميراث (يمكن للقراء الذين لا يفهمون مفهوم الميراث أن يتخطى هنا ، أو النقر على الميراث Java والمعاينة المتعددة الأشكال):
يجب أن تكون الأساليب التي تم إعلانها على أنها عامة في فئة الوالدين عامة في فئة الطفل.
يتم الإعلان عن الأساليب المعلنة على أنها محمية في فئة الأصل على أنها محمية أو عامة في فئة الطفل. لا يمكن إعلانها على أنها خاصة.
يمكن إعلان الأساليب المعلنة عن طريق المعدلات الافتراضية في فئة الوالدين باعتبارها خاصة في الفئات الفرعية.
الأساليب التي تم إعلانها على أنها خاصة في فئة الوالدين لا يمكن مورراها.
كيفية استخدام أحرف التحكم في الوصول
تتيح لنا أحرف التحكم في الوصول التحكم بسهولة في أذونات الكود:
عندما تحتاج إلى جعل الفصل الدراسي تكتب الوصول إلى جميع الفئات الأخرى ، يمكنك إعلان التحكم في الوصول إلى الفصل كجمهور.
عندما تحتاج إلى جعل الفصل الدراسي الخاص بك متاحًا فقط بواسطة الفئات في الحزمة الخاصة بك ، يمكن حذف حرف التحكم في الوصول.
عندما يكون من الضروري التحكم في بيانات الأعضاء في فصل ما ، يمكن تعيين أحرف التحكم في الوصول إلى بيانات الأعضاء في هذه الفئة على الجمهور أو المحمي أو المحذوفة.
نطاق متغيرات Java <Br /> في Java ، ينقسم نطاق المتغيرات إلى أربعة مستويات: مستوى الفئة ، مستوى مثيل الكائن ، مستوى الطريقة ، ومستوى الكتلة.
تسمى المتغيرات على مستوى الفصل المتغيرات العالمية أو المتغيرات الثابتة. يمكن الوصول إلى متغيرات المستوى الفئة بالفعل بعد تعريف الفئة ، ومساحة الذاكرة ، من خلال أسماء الفصول الدراسية ، ولا تحتاج إلى إنشاء مثيل لها.
سيتم تخصيص متغير على مستوى مثيل الكائن.
المتغيرات على مستوى الطريقة هي متغيرات محددة في الطرق ، وهي متغيرات محلية.
المتغيرات على مستوى الكتلة هي متغيرات محددة داخل كتلة. تشير الكتل إلى الكود المحاطة بالأقواس ، على سبيل المثال:
{int age = 3 ؛ خطأ ، age and name ariables system.out.println (name + "بالفعل" + age + "years") ؛ يوضح:
بالإضافة إلى الوصول إلى متغيرات مستوى الطريقة ، يمكن للأساليب أيضًا الوصول إلى متغيرات مستوى الفئة ومستوى المثيل.
يمكن الوصول إلى متغيرات المستوى على مستوى الفئة داخل الكتلة.
يجب عرض متغيرات الطريقة ومستوى الكتلة تهيئة وإلا لا يمكن الوصول إليها.
الرمز التجريبي:
الطبقة العامة العاطفية Test1 () {int j = 3 ؛ يمكن الوصول فقط إلى system.out.println ("name =" + name + "، i =" + i + "، j =" + j) ؛} كائن ، قم بالوصول إلى نظام متغير على مستوى الفئة. نتائج التشغيل:
الاسم الأكاديمية Micro = Micro Academy ، I = 0 ، J = 3