جافا:الوصول إلى معدل أكثر تقييدا من 'المحمية', أقل تقييدا من 'خاصة'?
-
06-07-2019 - |
سؤال
أريد شيئا من هذا القبيل protected
, حيث فقط الفئة التي تطبق protected
مجال و أي شيء فرعية يمكن الوصول إليه.
لذلك أريد أن تكون قادرة على بتعريف متغير في القاعدة الفئة private
, ولكن لا يزال قادرا على الوصول إليه من فئة فرعية.
ولعل هذا هو ضد طبيعة subclassing, private
, و/أو protected
.
لا شيء من هذا القبيل موجودة في جافا ؟
المحلول
هناك فقط أربعة مستويات الوصول للحقول في جاوة:
private
- حزمة-خاص (الافتراضي ؛ لا الوصول إلى معدل)
protected
public
protected
سوف تسمح فرعية ، الطبقات الأخرى في نفس الحزمة ، أعضاء في الطبقة نفسها للوصول إلى protected
الأعضاء.
الجواب القصير هو لا توجد وسيلة لتحقيق بالضبط ما هو المطلوب.
للحصول على وصف هؤلاء الأربعة الوصول إلى المعدلات ، التحكم في الوصول إلى أعضاء من فئة من جافا الدروس لديه معلومات أكثر تحديدا.
نصائح أخرى
إذا يمكنك التحكم في مصدر برنامج، يمكنك التحكم دائما ما يدخل الحزمة مع baseclass - لو كان وحده في عبوتها، فقط فرعية يمكن الوصول إلى العضو الذي تريد أن تبقي الخاص باستثناء الفئات الفرعية
لا، ليس هناك وصول معدل ل تفعل ذلك بالضبط. المعدل protected
هو أقرب شيء، ولكن الذي يعرض الحقل إلى أي فئة في نفس الحزمة وكذلك الفئات الفرعية (داخل أو خارج من نفس الحزمة).
وليس من الممكن. U لا يزال بتعريف المتغيرات كخاص ثم يعلن الأساليب العامة التي تقوم بتعديل المتغيرات في الطبقة المتفوقة. ثم استدعاء الأسلوب العام على المتغير.