كيفية تنفيذ فئة متداخلة في جافا؟



ستساعدك هذه المقالة حول الفئة المتداخلة في جافا على فهم كيفية تنفيذ الفئات المتداخلة بمساعدة برنامج مثال.

في Java ، يمكن تعريف فئة داخل فئة أخرى وتعرف هذه الفئات بالفئات المتداخلة. تساعدك هذه الفئات في التجميع المنطقي للفئات المستخدمة في مكان واحد فقط. يؤدي هذا إلى زيادة استخدام التغليف وإنشاء رمز أكثر قابلية للقراءة والصيانة. ستمنحك هذه المدونة الخاصة بـ 'Nested Class in Java' مقدمة سريعة حول الفصول المتداخلة في . فيما يلي الموضوعات التي يتم تناولها في هذه المدونة:

فئة متداخلة في Java

ال صف دراسي مكتوب داخل فئة تسمى الفئة المتداخلة بينما تسمى الفئة التي تحتوي على الطبقة الداخلية الفئة الخارجية. فيما يلي بعض النقاط التي يجب تذكرها للفئات المتداخلة في Java -





  • يتم تقييد نطاق الفئة المتداخلة بفئة التضمين الخاصة بها.
  • يمكن للفئة المتداخلة الوصول إلى أعضاء الفئة التي تتداخل فيها. ولكن ، لا يمكن للفئة المضمنة الوصول إلى أعضاء الفئة المتداخلة.
  • الفئة المتداخلة هي عضو الفصل المرفق.
  • يمكن الإعلان عن فئة متداخلة عامة أو خاصة أو محمية أو حزمة خاصة.

أنواع الفئات المتداخلة

فئة متداخلة داخلية / غير ثابتة: في Java ، تعتبر الفئات غير الثابتة آلية أمان. لا يمكن ربط فئة بـ تحرير الوصول خاص ، ولكن إذا كان لديك الفصل كعضو في فئة أخرى ، فيمكن جعل الفصل غير الثابت خاصًا.

أنواع الطبقات الداخلية وناقص



  • الطبقة الداخلية
  • الطريقة المحلية الطبقة الداخلية
  • فئة داخلية مجهولة

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

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

تنفيذ hashmap في كود جافا
class Outer_Test {int num // inner class private class Inner_Test {public void print () {System.out.println ('This is an Our inner class')}} // الوصول إلى الطبقة الداخلية من الأسلوب void display_Inner () { Inner_Test inner = new Inner_Test () inner.print ()}} فئة عامة My_class {public static void main (String args []) {// Instantiating the Outer class Outer_Test external = new Outer_Test () // الوصول إلى طريقة display_Inner () . External.display_Inner ()}}

انتاج |
الطبقة المتداخلة الداخلية- Edureka

الطريقة المحلية الطبقة الداخلية

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



فئة عامة Outerclass {// طريقة المثيل للفئة الخارجية void my_Method () {int num = 1001 // method-local class class class StarInner_Test {public void print () {System.out.println ('هذه هي فئة النجوم الداخلية' + num)}} // end of inner class // الوصول إلى الطبقة الداخلية StarInner_Test star = new StarInner_Test () star.print ()} فراغ أساسي عام ثابت (String args []) {Outerclass Outer = new Outerclass () Outer. my_Method ()}}

انتاج |

فئة داخلية مجهولة

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

فئة مجردة AnonymousInnerTest {public abstract void mytest ()} public class Outer_class {public static void main (String args []) {AnonymousInnerTest inner = new AnonymousInnerTest () {public void mytest () {System.out.println ('This is an مثال لفئة اختبار داخلي مجهول ')}} inner.mytest ()}}

انتاج-

فئة متداخلة ثابتة: إلى هي فئة متداخلة تمثل عضوًا ثابتًا في الفئة الخارجية. على عكس الفئة الداخلية ، لا يمكن للفئة المتداخلة الثابتة الوصول إلى متغيرات الأعضاء الخاصة بالفئة الخارجية لأن الفئة المتداخلة الثابتة لا تتطلب مثيلًا للفئة الخارجية. ومن ثم ، لا توجد إشارة إلى الفئة الخارجية باستخدام OuterClass.this. بناء جملة فئة متداخلة ثابتة هو -

فئة MyOuter {فئة ثابتة Nested_Test {}}

مثال على فئة ثابتة متداخلة

فئة عامة Outer {static class Nested_Test {public void my_method () {System.out.println ('This is Edureka's nested test class')}} public static void main (String args []) {Outer.Nested_Test nested = new Outer. Nested_Test () nested.my_method ()}}

انتاج |

السلاسل في جافا غير قابلة للتغيير

الفرق بين الفئات المتداخلة الثابتة وغير الثابتة

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

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

قبل أن نصل إلى نهاية هذا المقال ، دعونا نلقي نظرة على بعض النقاط الرئيسية.

نقاط أساسية يجب تذكرها

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

بهذا نكون قد وصلنا إلى نهاية هذه المدونة الخاصة بالفصول المتداخلة في Java. إذا كنت ترغب في معرفة المزيد عن Java ، تحقق من من Edureka ، وهي شركة تعليمية موثوقة عبر الإنترنت مع شبكة تضم أكثر من 250000 متعلم راضٍ منتشرين في جميع أنحاء العالم. تم تصميم دورة تدريب وشهادة Java J2EE و SOA من Edureka للطلاب والمهنيين الذين يرغبون في أن يصبحوا مطوري Java. تم تصميم الدورة التدريبية لمنحك السبق في برمجة Java وتدريبك على مفاهيم Java الأساسية والمتقدمة جنبًا إلى جنب مع العديد من أطر Java مثل Hibernate & Spring.

لديك سؤال لنا؟ يرجى ذكر ذلك في قسم التعليقات في مدونة 'Nested Class in Java' وسنعاود الاتصال بك في أقرب وقت ممكن.