في ظل الظروف العادية ، لا يمكن استخدام فئات التعديل الثابت. إذا كان عليك استخدام Static لتعديل الفصل ، فعادةً ما يعدل Static الفئة الداخلية المجهولة.
قم بإنشاء فصل آخر في فصل واحد ، ودعا الفئة الداخلية العضو. يمكن أن تكون هذه الفئة الداخلية للأعضاء ثابتة (باستخدام تعديل الكلمات الرئيسية الثابتة) أو غير استاتيكي. لأن الطبقات الداخلية الثابتة لها قيود مختلفة عند تحديدها واستخدامها. لذلك لا يتم استخدام الكثير في العمل الفعلي.
أثناء عملية التطوير ، يتم استخدام الطبقات الداخلية الأكثر شيوعًا في الطبقات الداخلية التي هي أعضاء غير متوقفة. ومع ذلك ، في حالات محددة ، يمكن أن تلعب الطبقات الداخلية الثابتة دورها الفريد.
1. الغرض من استخدام الطبقات الداخلية الثابتة.
عند تحديد فئة داخلية ، يمكنك البادئة ببادئة معدل إذن ثابت. في هذا الوقت ، تصبح هذه الفئة الداخلية فئة داخلية ثابتة. ومع ذلك ، بسبب أسباب مختلفة ، مثل قيود الاستخدام وعوامل أخرى (يتم شرح قيود الاستخدام المحددة بالتفصيل في المحتوى التالي) ، لا يوجد الكثير من المستخدمين في العمل الفعلي. لكن هذا لا يعني أنه ليس له قيمة. في بعض الحالات الخاصة ، ليس من الممكن حقًا أن تفتقر إلى هذه الطبقة الداخلية الثابتة. على سبيل المثال ، عند إجراء اختبار برنامج التعليمات البرمجية ، إذا تم تعيين طريقة رئيسية في كل ملف مصدر Java (الطريقة الرئيسية هي مدخل تطبيق معين ويجب أن يكون لها) ، فسيظهر الكثير من التعليمات البرمجية الإضافية. والشيء الأكثر أهمية هو أن رمز هذا البرنامج الرئيسي هو مجرد نموذج لملفات Java ، ولا يتطلب هذه الطريقة الرئيسية نفسها. لكن من المستحيل تمامًا الاستغناء عن هذه الطريقة الرئيسية. في هذه الحالة ، يمكن كتابة الطريقة الرئيسية في الفئة الداخلية الثابتة ، بحيث لا توجد حاجة لتعيين طريقة رئيسية مماثلة لكل ملف مصدر Java. هذا مفيد جدا لاختبار التعليمات البرمجية. في بعض تطوير التطبيقات المتوسطة والكبيرة ، إنها وسائل تقنية شائعة الاستخدام. لهذا السبب ، على الرغم من أن هذه الفئة الداخلية الثابتة ليست شائعة الاستخدام ، يجب على مطوري البرامج أيضًا إتقانها. ربما في لحظة حرجة ، لا يزال من الممكن أن تلعب دورًا كبيرًا.
الفئة العامة maininstaticClass {static class main {static void main () {// اكتب الطريقة الرئيسية لفئة داخلية ثابتة ، لذلك ليست هناك حاجة إلى أن يكون هذا النوع من الطريقة الرئيسية لكل ملف مصدر جديد maininstaticclass (). print () ؛}} print () {system.out.println ("main in static inner class") ؛}} الفئة العامة testmain {public static void main (string [] args) {// todo method tuto method // new MaininStaticClass ().2. القيود على استخدام الطبقات الداخلية الثابتة.
إن تحديد فئة داخلية كطبقة ثابتة هو في الأساس مثل تعريف الفئات الأخرى كطبقات ثابتة ، والقواعد المرجعية هي نفسها بشكل أساسي. ومع ذلك ، فإن التفاصيل لا تزال مختلفة جدا. على وجه التحديد ، هناك بشكل أساسي المجالات التالية لجذب انتباه جميع مطوري البرامج.
واحد هو تعريف الأعضاء الثابتة (بما في ذلك المتغيرات الثابتة والأعضاء الثابتة). بشكل عام ، إذا لم يتم تعريف الفئة الداخلية على أنها فئة داخلية ثابتة ، فلا يمكن تعريفها على أنها متغير عضو ثابت وطريقة عضو ثابت عند تحديد متغيرات الأعضاء أو أساليب الأعضاء. أي أنه لا يمكن الإعلان عن الأعضاء الثابتة في الطبقات الداخلية غير الاستقليوية. على سبيل المثال ، يتم الآن تعريف عصر الفصل الداخلي في فصل الطلاب. إذا لم يتم تعديل هذه الفئة باستخدام الكلمة الرئيسية الثابتة ، فهذا هو ، لا يتم تعريفه على أنه فئة ثابتة ، فلا يُسمح له بتعديل طريقة عضو أو متغير عضوي معين في هذه الفئة الداخلية. لن يكون قادرًا على المرور عند التجميع. لذلك ، يحتاج مطورو البرامج إلى ملاحظة أنه من خلال تعديل فئة داخلية كصف ثابت يمكن أن يتم تحديد متغيرات الأعضاء الثابتة ويتم تحديد أساليب الأعضاء في هذه الفئة. هذه هي الميزة التي تحتوي عليها الطبقات الداخلية الثابتة. هذا بالضبط لهذا السبب لا يمكن إكمال العديد من المهام في بعض الأحيان دون هذه الفئة الداخلية الثابتة. أو من الضروري التجول في دائرة كبيرة لتحقيق احتياجات مستخدم معين. هذا أيضًا سبب مهم لوجود عمليات داخلية ثابتة.
ثانياً ، هناك قيود كبيرة نسبيًا على الاستشهادات الأعضاء. يمكن للفئات الداخلية غير الاستثمارية العامة الوصول إلى متغيرات الأعضاء وأساليب الأعضاء في الفئات الخارجية حسب الرغبة. حتى إذا تم تعديل أساليب الأعضاء هذه على أنها خاصة (متغيرات أو أساليب خاصة بالأعضاء) ، فيمكن الوصول إلى فئاتها الداخلية غير الستاطية في الإرادة. إنه امتياز الفصول الداخلية غير المنتظمة. لأنه في فصول أخرى ، يتعذر الوصول إلى متغيرات الأعضاء أو الأساليب المعرّفة على أنها خاصة. ومع ذلك ، إذا تم تعريف الفئة الداخلية على أنها ثابتة ، فستكون هناك العديد من القيود عند استخدام أساليب الأعضاء أو متغيرات الأعضاء للفئة الخارجية. على سبيل المثال ، لا يمكن الوصول إلى الأعضاء غير المستقلين من الفئات الخارجية (بما في ذلك متغيرات الأعضاء وأساليب الأعضاء) من كائنات فئة داخلية ثابتة. ماذا يعني هذا؟ إذا تم تعريف متغيرين في الفئة الخارجية ، فسيكون أحدهما متغيرًا غير منتظم والآخر هو متغير ثابت. ثم في فئة داخلية ثابتة ، سواء كانت داخل طريقة العضو أو في أي مكان آخر ، يمكن أن تشير فقط إلى متغيرات ثابتة في الفئة الخارجية ، ولا يمكن الوصول إلى المتغيرات غير الستاطية. في الطبقات الداخلية الثابتة ، يمكن تعريف الطرق الثابتة (ويمكن تحديد الطرق الثابتة فقط في فئات داخلية ثابتة) ، ويمكن الرجوع إلى أعضاء الفئة الخارجية بطرق ثابتة. ومع ذلك ، بغض النظر عن المكان الذي تتم الإشارة إلى الفئة الداخلية ، هناك شيء واحد مشترك ، أي أنه لا يمكن إلا أن يشير إلى أساليب الأعضاء الثابتة أو متغيرات الأعضاء في الفصل الخارجي. بالنسبة للمتغيرات غير القتالية وأساليب الأعضاء ، لا يمكن الوصول إليها في الطبقات الداخلية الثابتة. هذا هو الحد الأقصى للاستخدام للفصول الداخلية الثابتة. لا يوجد مثل هذا التقييد في الطبقات الداخلية العادية غير الستراتية. هذا هو بالضبط السبب في أن الطبقات الداخلية الثابتة تستخدم فقط في بعض المناسبات المحددة. نطاق التطبيق الخاص به أقل شمولاً من تلك الموجودة في الطبقات الداخلية غير الستاطية.
ثالثًا ، عند إنشاء فئة داخلية ثابتة ، ليست هناك حاجة لربط حالات الفئة الداخلية الثابتة إلى مثيلات الفئة الخارجية.
بشكل عام ، عند إنشاء فئة داخلية عضو في الفصل ، هناك حكم إلزامي ، أي أن حالات الطبقة الداخلية يجب أن تكون مرتبطة بمثيلات من الطبقة الخارجية. وهذا يعني ، قبل إنشاء فئة داخلية ، يجب عليك أولاً استخدام الكلمة الرئيسية الجديدة في الفئة الخارجية لإنشاء كائن من هذه الفئة الداخلية. في هذه الحالة ، إذا تمت تهيئة كائن فئة داخلي من الفئة الخارجية ، فسيتم ربط كائن الفئة الداخلية بكائن الفئة الخارجية. بمعنى آخر ، يتم إرفاق كائنات الفئات الداخلية العادية غير الستراتية بالكائنات الخارجية. ومع ذلك ، إذا قام المطورون الأعضاء بإنشاء فصول داخلية ثابتة ، فهذه مسألة أخرى. بشكل عام ، عندما يحدد المبرمج فئة داخلية ثابتة ، لا يحتاج إلى تحديد مثيلات الفئة الخارجية. وهذا يعني ، لتحديد فئة داخلية ثابتة في فئة خارجية ، ليست هناك حاجة لاستخدام الكلمة الرئيسية الجديدة لإنشاء مثيل للفئة الداخلية. وهذا هو ، عند إنشاء كائن داخلي لفئة ثابتة ، ليست هناك حاجة إلى كائنات من فئتها الخارجية.
newMainInStaticClass.Main();
لسبب محدد ، لا يحتاج مطورو البرامج عمومًا إلى فهمه بعمق ، فهم بحاجة فقط إلى تذكر أن هناك هذه القاعدة. عند تحديد فصول داخلية ثابتة ، لا تخطئ أبدًا في إضافة أموال إضافية.
من التحليل أعلاه ، يمكننا أن نرى أن الطبقات الداخلية الثابتة لا تزال مختلفة تمامًا عن الطبقات الداخلية غير القاتلة. بشكل عام ، يمكن لمطوري البرامج أن يفهموا أن كائنات الفئة الداخلية غير الستراتية تنقذ ضمنيًا مرجعًا في الفئة الخارجية للإشارة إلى كائن الفئة الخارجية التي أنشأتها. بغض النظر عن هذا الفهم ، يحتاج مطورو البرامج إلى مراعاة الاختلافات بين الطبقات الداخلية الثابتة والطبقات الداخلية غير المنتظمة. على سبيل المثال ، ما إذا كان يمكن إنشاء أساليب الأعضاء الثابتة والمتغيرات الأعضاء (يمكن للفئات الداخلية الثابتة إنشاء أعضاء ثابتين بدلاً من فئات داخلية ثابتة) ، والقيود على الوصول إلى أعضاء الفئات الخارجية (الفصول الداخلية الثابتة فقط ، يمكن الوصول إلى أساليب الأعضاء من الدرجة الخارجية فقط ، وهي أساليب الأعضاء العازمة). هذان الاختلافان هما الفرق الأكبر بين الطبقات الداخلية الثابتة والفئات الخارجية غير الستراتية ، وهما أيضًا السبب وراء وجود الطبقات الداخلية الثابتة. بعد فهم هذا الاختلاف ، يحتاج مطورو البرامج أيضًا إلى معرفة الظروف التي يجب أن يستخدموا فيها الطبقات الداخلية الثابتة. على سبيل المثال ، أثناء اختبار البرنامج ، من أجل تجنب كتابة رمز الطريقة الرئيسية في كل ملف مصدر Java ، يمكن كتابة الطريقة الرئيسية في فئة داخلية ثابتة لتقليل كمية الكود المكتوب وجعل الكود أكثر إيجازًا.
باختصار ، تعد الطبقات الداخلية الثابتة فئة خاصة جدًا في لغة Java ، والتي تختلف تمامًا عن الطبقات الثابتة العادية والفصول الداخلية غير القاتلة. كمطور للبرنامج ، من الضروري معرفة الاختلافات بينهما واعتماد الطبقات الصحيحة حيث هم في عمل حقيقي. ومع ذلك ، بشكل عام ، فإن تواتر الطبقات الداخلية الثابتة ليس مرتفعًا جدًا. ومع ذلك ، في بعض المناسبات ، إذا لم تكن هذه الفئة الثابتة الداخلية متوفرة ، فقد يكون لها تأثير سلبي لنصف النتيجة مع ضعف الجهد.
3
بعد قراءة المحتوى أعلاه ، اختبرته ككل:
بادئ ذي بدء ، يحتاج الجميع إلى فهم أن الطبقات الداخلية الثابتة لا تعتمد فقط على الطبقات الخارجية ، والمتغيرات والأساليب الموجودة داخلها ليست ثابتة بالضرورة. دعنا نتحدث عن الكود أدناه:
اختبار الفئة العامة {public static void main (string [] args) {myinnerStaticClass inner = new myinnerstaticclass () ؛ inner.a = 10 ؛ inner.b = "abc" اختبار الفئة العامة {public static void main (string [] args) {myinnerStaticClass inner = new myinnerstaticclass () ؛ inner.a = 10 ؛ inner.b = "abc"الرمز أعلاه يثبت فئة مجهولة الثابتة مع جديد ، أدخل 10 ABC بعد الجري ، صحيح!
لخص
ما سبق هو كل التفسير التفصيلي للفئة الثابتة في جافا في هذه المقالة. آمل أن يكون ذلك مفيدًا للجميع. يمكن للأصدقاء المهتمين الاستمرار في الرجوع إلى الموضوعات الأخرى ذات الصلة على هذا الموقع. إذا كانت هناك أي أوجه قصور ، فيرجى ترك رسالة لإشارةها. شكرا لك يا أصدقائك لدعمكم لهذا الموقع!