إن Java Static Inner Class <BR /> تحديد فئة داخلية كطبقة ثابتة هو في الأساس تعريف فئات أخرى كطبقات ثابتة ، والقواعد المرجعية هي نفسها بشكل أساسي. ومع ذلك ، فإن التفاصيل لا تزال مختلفة جدا. على وجه التحديد ، هناك بشكل أساسي المجالات التالية لجذب انتباه جميع مطوري البرامج.
(1) بشكل عام ، إذا لم يتم تعريف الفئة الداخلية على أنها فئة داخلية ثابتة ، فلا يمكن تعريفها على أنها متغير عضو ثابت وطريقة عضو ثابت عند تحديد متغيرات الأعضاء أو أساليب الأعضاء. أي أنه لا يمكن الإعلان عن الأعضاء الثابتة في الطبقات الداخلية غير الاستقليوية.
(2) بشكل عام ، يمكن للفئات الخارجية غير السترات الوصول إلى متغيرات الأعضاء وأساليب فئاتها الخارجية (بما في ذلك الأساليب المعلنة على أنها خاصة). القيود. لا يمكن للفئة الداخلية الثابتة الوصول إلى متغيرات الأعضاء غير المنتظمة وطرق فئتها الخارجية.
(3) عند إنشاء فئة داخلية عضو غير منتظم في الفصل ، هناك حكم إلزامي ، أي أن حالات الفئات الداخلية يجب أن تكون ملزمة بمثيلات من الفئات الخارجية. ثم تحتاج إلى تحديد فئة داخلية ثابتة في فئة خارجية ، ولا تحتاج إلى استخدام الكلمة الرئيسية الجديدة لإنشاء مثيل للفئة الداخلية. وهذا هو ، عند إنشاء كائن داخلي لفئة ثابتة ، ليست هناك حاجة إلى كائنات من فئتها الخارجية.
تستخدم Java الفئة الداخلية التالية عند تنفيذ LinkedList:
الطبقة العامة LinkedList <e> يمتد قائمة التجريدية <e> قائمة الأدوات <e> ، deque <e> ، clonable ، java.io.serializable {............ static static en try <e> {element express ؛ السابق OUS ؛ ؛
هنا هو الاستخدام النموذجي للفصول الداخلية الثابتة
فئة أداة التزامن Java
/** يجب أن تبدأ مؤشرات الترابط المتعددة في استيراد بيانات الواجهة في الدُفعات. وهو جوهر المزامنة بين الخيوط. يسمح ذلك بإكماله قبل إكمال مجموعة من العمليات التي يتم تنفيذها في مؤشرات ترابط أخرى. * تهيئة CountDownlatch مع العدد المحدد. نظرًا لأن طريقة العد التنازلي () تسمى ، سيتم حظر طريقة الانتظار * حتى يصل العدد الحالي إلى الصفر. بعد ذلك ، سيتم إصدار جميع خيوط الانتظار وسيتم إرجاع جميع المكالمات اللاحقة للانتظار على الفور. * تحدث هذه الظاهرة مرة واحدة فقط - لا يمكن إعادة تعيين العدد (هذا مهم للغاية). إذا كنت بحاجة إلى إعادة تعيين العد ، فكر في استخدام Cyclicbarrier. * ما يلي مثال بسيط لمحاكاة هذا المطلب. * فئة ، محتوى فئة معقدة نسبيا ** <integer> strlist = null ؛ } static void main (args []) {boolean isend = true ؛ ) ::::::::::: ++ i) {New Thread (D.New Worker (startignal ، donesignal ، i). start () ؛ ) {Random R = New Random () ؛ () ؛ إضافة (i) ؛ العد التنازلي donesignal. للاطلاع على الخيط الرئيسي العد التنازلي. ) {int start = (i)*(50/5) ؛ strlist.get (i) + "---" + "deleted") ؛