ماهو inner class و ماهو outer class في جافا oop part 2

الكاتب: Mr.Aziz

تاريخ النشر: 2022-03-26 21:02:50

مساء الخير

 

اليوم حبيت اشرح كذا كم شغلة قبل مانتعمق في oop بجافا ولا اكيد بتتلخبط بدونها

 

أول شي راح نشرح ايش هو inner  و outer و ايضآ راح نشرح ماهو الفرق بين static و none static و متى يستخدم بالاساس :)

و راح يتم عمل الشرح مع method لانه static و none static تعمل مع method فقط...

 

الي ماشاف اساسيات oop تفضل شوفها هنا الرابط

 

نبدء بسم الله

 

ماهو inner class ؟ هذا النوع ممكن كتابة الكلاسات في داخل الكلاس الاساسي عند تشغيل البرنامج وبالغالب بيكون كلاس Main

طيب ايش هو بضبط

تعالو هنا

 

تلاحظون هنا عندنا كلاس اساسي اسمه public class Main هذا يتم انشاءه تلقائيآ عند انشاء مشروع او project تمام

 

راح تلاحظون اني كتبت اسم متغير مع القيمة خارج الكلاس main الي مفترض compiler يبدء يقرءها!! اقصد هنا

public static void main

 

المهم الكلاس public class Main يسمى Inner class او من الكلاسات الداخلية

 

وكيف يتم استدعاء المتغيرات التي متواجدة في الكلاس؟ عندك كذا كم طريقة

الي هي Static و nan static الي هو public

 

ايش هو Static بضبط ؟ هو بأمكاننا عمل استدعاء المتغير من داخل الكلاس من غير مانعمل اوبجكت زي ماشرحت لكم الدرس السابق

 

ممكن بيكون بهذي طريقة

 

 

تلاحظ الان عملنا method داخل inner class بأسم myMethod و داخله عملنا متغير بها قيمة تساوي 5

int x = 5

و داخل main التي يفترض يقرءها compiler فقط وضعنا myMethod الى هو function call 

 

هل ممكن تضبط هذي طريقة؟

نشوف النتيجة

 

 

تلاحظ معاي اني وضعت الطباعة المتغير وفعلآ ضبط لانه Static لايحتاج استدعاء او عمل اوبجكت لعطاء الصلاحيات الكلاس Main

 

 

الان نجي non static الي هو يعتبر public هنا يحتاج نعطي صلاحيات للكلاس بحيث نستطيع الطباعة المتغير x

 

هنا نعمل اوبجكت

 

تتذكرون المره السابقه او موضوع سابق شرحت لكم عن اوبجكت و ليش؟ لانه Main عباره عن none static  زي ماوعدتكم اني راح اشرحهها هنا :)

 

نفس طريقة سابقه لما حطينا public هنا لازم نعمل اوبجكت

بتلاحظ معاي كل شي تغير ولازم نعمل صلاحيات عشان نقدر نستدعي اي متغير او method من خلال الكلاس.

 

هذا كله فقط في inner class

 

ولكن outer class كيف بيكون؟؟؟

 

بيكون بالخارج او خارج Main

هكذا

 

مثل ماتلاحظون اني أنشأت كلاس اخر بأسم thisClass ونقلت method داخل هذا الكلاس واصبح الان لدينا outer class آي خارج الكلاس الاساسي او public class Main

 

بنفس طريقة لازم الأستدعاء يكون عن طريق اوبجكت لانه يعتبر هذا كلاس الخارجي

 

لانه لو تلاحظون معاي مهم ماخليته static أو public  ماراح يضبط لانه يعتبر كلاس الخارجي وليس داخلي لهذا السبب يجب عمل اوبجكت بكل حالات.

 

بهذي طريقة

 

 

هذا موضوعنا اليوم عن outer و inner و الفرق بينهم

 

أتمنى وصلتكم المعلومة لو بقليل

وياليت تنشرونه بكل مكان

 

واشوفكم على خير