في الحزمة package1 أنشئ ClassA بأربع خصائص، كل خاصية بمحدد وصول مختلف (public و private و protected و default)، ودالة showInfo تطبعها. ثم جرّب الوصول إلى الخصائص من ClassB في الحزمة نفسها، ومن ClassC في حزمة أخرى package2 مع الوراثة وبدونها.
٢الخوارزمية المقترحة
أنشئ مشروع Access Modifiers والحزمة package1.
ClassA: الخصائص f_public و f_private و f_protected و f_default، والدالة showInfo تطبعها جميعًا.
ClassB (في package1): أنشئ كائنًا من ClassA واستدعِ showInfo ثم اطبع f_default. لاحظ أن f_private لا يظهر في قائمة الإكمال.
أنشئ الحزمة package2 وفيها ClassC: كائن من ClassA لا يصل إلا إلى f_public.
اجعل ClassC يرث ClassA، وأنشئ الكائن من ClassC، فيصل إلى f_protected أيضًا.
٣خطوات التطبيق
في NetBeans
أنشئ مشروعًا باسم Access Modifiers دون Main Class.
أنشئ الحزمة package1 وفيها ClassA بأربع خصائص بالمحددات الأربعة، ودالة showInfo.
أنشئ ClassB في package1. اكتب obj. وانظر قائمة الإكمال: تظهر كل الخصائص ما عدا f_private.
أنشئ الحزمة package2 وفيها ClassC. اكتب obj. : لا يظهر إلا f_public.
اجعل ClassC يرث ClassA (extends ClassA) وأنشئ الكائن من ClassC: يظهر f_protected أيضًا.
نفّذ كل كلاس بـ Run File (Shift+F6).
في OneCompiler
افتح OneCompiler من زر «▶ شغّل المشروع» أسفل الحل، أو من موقع onecompiler.com/java.
في OneCompiler تُكتب كل الكلاسات في ملف واحد Main.java؛ زر التشغيل يجمعها لك تلقائيًّا.
إذا كان البرنامج يقرأ من لوحة المفاتيح، فاكتب المدخلات في خانة STDIN التي تظهر تحت الكود في محرّر OneCompiler، ثم اضغط Run.
٤المخرجات المطلوبة
نفّذ برنامجك، ويجب أن تظهر المخرجات التالية:
Output – (run)×
run:
public
private
protected
default
default
BUILD SUCCESSFUL (total time: 0 seconds)
٥الحل المقترح
حاول بنفسك أولًا، ثم قارن حلّك بالحل المقترح (كود التدريب من مذكرة العملي):
👁 اعرض الحل المقترح🧩 ClassB في الحزمة نفسها فيصل إلى كل شيء ما عدا private. وClassC في حزمة أخرى ويرث ClassA، فيصل إلى public و protected فقط.