ما هي الطبقة الداخلية في جافا؟

نشرت: 2022-04-29

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

يتم تعريف الفئة المتداخلة داخل فئة أخرى ولها نوعان - فئة متداخلة ثابتة وفئة متداخلة غير ثابتة. من ناحية أخرى ، فإن الطبقة الداخلية هي نوع من الفئات المتداخلة غير الثابتة وهي أيضًا من ثلاثة أنواع - فئة الأعضاء الداخلية ، والطبقة الداخلية المجهولة ، والطبقة الداخلية المحلية.

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

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

معنى الطبقة الداخلية في جافا

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

مصدر

أنواع الطبقة الداخلية في Java

في Java ، تتكون الفئات الداخلية من الأنواع الثلاثة التالية:

  • عضو الطبقة الداخلية
  • الطبقة الداخلية المجهولة
  • الطبقة الداخلية المحلية

الآن ، دعونا نفهم كل نوع من أنواع الطبقة الداخلية بأمثلة.

1. عضو الطبقة الداخلية

فئة العضو الداخلية في Java هي فئة متداخلة غير ثابتة تم إنشاؤها داخل فئة ولكن خارج طريقة. يشار إليها أيضًا بالفئة الداخلية العادية ، يمكن الإعلان عن فئة داخلية للعضو بمعدلات وصول مثل خاص ، وعامة ، وافتراضي ، ومحمي.

بناء الجملة للفئة الداخلية للعضو هو كما يلي:

فئة خارجي {

//الشفرة

الطبقة الداخلية {

//الشفرة

}

}

فئة العضو الداخلية في Java مثال:

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

فئة DemoOuter {

عدد int ؛

// الطبقة الداخلية

فئة خاصة DemoInner {

طباعة باطلة عامة () {

System.out.println ("هذه هي الطبقة الداخلية")؛

}

}

// الوصول إلى الطبقة الداخلية من الطريقة الداخلية

display_Inner باطلة () {

DemoInner inner = new DemoInner () ؛

inner.print () ؛

}

}

فئة عامة MyClass {

العامة الثابتة الفراغ الرئيسي (سلاسل سلسلة []) {

// تجسيد الطبقة الخارجية

DemoOuter الخارجي = جديد DemoOuter () ؛

// الوصول إلى طريقة display_Inner ()

External.display_Inner () ،

}

}

الإخراج: هذه هي الطبقة الداخلية

في المثال أعلاه ، OuterDemo هي الفئة الخارجية ، و InnerDemo هي الفئة الداخلية ، ونحن نقوم بإنشاء مثيل للفئة الداخلية داخل الطريقة display_Inner () ، والتي يتم استدعاؤها من الطريقة الرئيسية.

استكشف دوراتنا التدريبية الشهيرة في هندسة البرمجيات

SL. رقم برامج تطوير البرمجيات
1 ماجستير العلوم في علوم الكمبيوتر من جامعة جون مورس بليفربول و IIITB برنامج شهادة الأمن السيبراني من معهد كاليفورنيا للتكنولوجيا CTME
2 برنامج تدريب تطوير المكدس الكامل برنامج PG في Blockchain
3 برنامج الدراسات العليا التنفيذية في تطوير البرمجيات - تخصص في DevOps عرض جميع دورات هندسة البرمجيات

2. الطبقة الداخلية المجهولة

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

بناء الجملة لفئة داخلية مجهولة في Java هو كما يلي:

AnonymousInner an_inner = new AnonymousInner () {

my_method باطل عام () {

//الشفرة

}

} ؛

يمكن إنشاء فئة داخلية مجهولة في Java بطريقتين:

  1. باستخدام الطبقة
  2. باستخدام الواجهة

فئة داخلية مجهولة في مثال Java (باستخدام class):

وجبة فئة مجردة {

أكل الفراغ المجرد () ؛

}

فئة TestAnonymousInner {

العامة الثابتة الفراغ الرئيسي (سلاسل سلسلة []) {

الوجبة م = الوجبة الجديدة () {

void eat () {System.out.println (“Bon appetit!”)؛}

} ؛

لحم()؛

}

}

الإخراج: شهية طيبة!

فئة داخلية مجهولة في مثال Java (باستخدام الواجهة):

لعبة الواجهة {

لعب باطل () ؛

}

فئة TestAnnonymousInner1 {

العامة الثابتة الفراغ الرئيسي (سلاسل سلسلة []) {

اللعبة g = لعبة جديدة () {

تشغيل باطل عام () {System.out.println ("ألعاب خارجية") ؛}

} ؛

ز اللعب () ؛

}

}

الإخراج: ألعاب خارجية

3. الطبقة الداخلية المحلية

الفئة الداخلية المحلية في Java هي فئة تم إنشاؤها داخل طريقة. كما في حالة المتغيرات المحلية ، يظل نطاق الطبقة الداخلية المحلية مقيدًا داخل الطريقة.

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

فئة داخلية محلية في Java مثال:

يوجد أدناه مثال لبرنامج لشرح كيفية إنشاء مثيل لفئة داخلية محلية معلنة داخل طريقة فئة خارجية.

حزمة innerClass ؛

فئة عامة Outer_Class

{

// طريقة مثيل للفئة Outer_Class.

عرض الفراغ العام ()

{

// إعلان طريقة الطبقة الداخلية المحلية.

فئة Inner_Class

{

رسالة باطلة عامة () {

System.out.println (“هذه فئة داخلية محلية!”)؛

}

}

// إنشاء مثيل لطريقة الطبقة الداخلية المحلية واستدعاء طريقة msg () باستخدام متغير مرجع الكائن i.

Inner_Class i = new Inner_Class () ؛

i.msg () ؛

}

الرئيسية العامة الثابتة الفراغ (سلسلة [] args)

{

// قم بإنشاء كائن من الفئة الخارجية Outer_Class.

Outer_Class o = new Outer_Class () ؛

o.display () ؛

}

}

الإخراج: هذه فئة داخلية محلية!

مع وضع أساسيات فئة Java الداخلية في الاعتبار ، دعونا نفهم سبب حاجتنا إليها في المقام الأول.

مزايا Java Inner Class

تقدم فئة داخلية في Java ثلاث أدوات مساعدة مهمة إلى الجدول. هذه كالتالي:

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

2. تقلل فئة Java الداخلية بشكل كبير من التشفير لأنها تتطلب القليل من الكتابة.

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

تلخيص لما سبق

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

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

أتساءل أين تتعلم جافا؟

شهادة PG المرتبطة بالوظيفة من upGrad في هندسة البرمجيات هو ما تبحث عنه!

مصممة خصيصًا للخريجين الجدد والسنوات الأخيرة ، تعتبر شهادة PG المرتبطة بالوظيفة في هندسة البرمجيات من upGrad مثالية لأولئك الذين يرغبون في تعلم البرمجة والحصول على وظائف برمجية للمبتدئين. سيقوم هذا البرنامج عبر الإنترنت لمدة 5 أشهر بتعليم أفضل مهارات البرمجيات مثل Java و JavaScript و HTML5 و DSA و AWS و MERN والمزيد!

يسلط الضوء على البرنامج:

  • التخصص في MERN Stack / Cloud-Native
  • أكثر من 500 ساعة من التعلم عبر الإنترنت
  • 350+ ساعة من التدريب العملي
  • 50+ جلسة مباشرة
  • خمسة مشاريع صناعية
  • التواصل مع خبراء الصناعة
  • منتديات الأسئلة والأجوبة مع الأقران وخبراء الصناعة
  • دعم التعلم من مساعدي التدريس والموجهين الصناعيين

اشترك اليوم لتتعلم من الأفضل في المجال!

ما هو الفرق بين الطبقة الداخلية والطبقة الفرعية؟

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

هل يمكننا كتابة الفصل داخل الفصل في Java؟

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

هل يمكن أن تكون فئة Java الداخلية خاصة؟

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