فئة جافا الداخلية
1. ما هي الفئة الداخلية؟
يتم وضع تعريف فئة واحدة داخل فئة أخرى ، ويسمى هذه الفئة فئة داخلية
2. ما هي خصائص الطبقات الداخلية؟
1. الطبقة الداخلية لا تزال فئة مستقلة. بعد التجميع ، سيتم تجميع الفئة الداخلية في ملف .class مستقل ، ولكن يسبقه اسم الفصل ورمز $ للفئة الخارجية.
2. لا يمكن الوصول إلى الفصول الداخلية بطرق عادية. الفئة الداخلية هي عضو في الفئة الخارجية ، بحيث يمكن للفئة الداخلية الوصول بحرية إلى متغيرات الأعضاء في الفئة الخارجية ، سواء كانت خاصة أم لا.
3. إذا تم الإعلان عن الفئة الداخلية على أنها ثابتة ، فلن تتمكن من الوصول إلى متغيرات الأعضاء للفئة الخارجية حسب الرغبة. في هذا الوقت ، يمكن للفئة الداخلية الوصول فقط إلى متغيرات الأعضاء الثابتة للفئة الخارجية.
3. ما هي الفئات الداخلية؟
1. الفئة الداخلية العضو
يحب:
حزمة com.test01 ؛ الفئة العامة A {// الفئة الداخلية B يرث TestPojo وتنفس الفئة واجهة testinterface يمتد testPojo يطرف testinterface {// الفئة الداخلية B الخاصة بـ Public Void Run () {system.out.println ("أنا أقوم!") ؛ } // أعد كتابة طريقة الواجهة public void testf () {system.out.println ("تنفيذ الواجهة!") ؛ }} // استدعاء اختبار الفراغ العام الداخلي () {b b = new b () ؛ B.Testf () ؛ // استخدم طريقة rewrite واجهة B.Run () ؛ // استدعاء الطريقة الخاصة بك B.TestPojo () ؛ // طريقة الاتصال التي ترث الفئة الأصل} // اختبار الطريقة الرئيسية اختبار الفراغ الثابت العام (سلسلة [] args) {a a = new a () ؛ A.Test () ؛ }} // تحديد واجهة ، الطريقة هي testf () واجهة testInterface {public void testf () ؛} // تحديد طريقة الفئة العادية testpojo () class testpojo {public void testpojo () {system.out.println ("أنا فئة pojo بسيطة") ؛ }} // التنفيذ لاستدعاء الأساليب في فئة الفئة الداخلية textone {public static void main (string [] args) {ab b = new a (). new b () ؛ // استدعاء الفئة الداخلية B في الفئة A /** يعادل الكود التالي* A = جديد A () ؛ * ab b = a.new b () ؛ * */ b.testf () ؛ // استخدم طريقة rewrite واجهة B.Run () ؛ // استدعاء الطريقة الخاصة بك B.TestPojo () ؛ // استدعاء الطريقة التي ترث فئة الأصل}}2. الطريقة الداخلية الفئة
package com.test01 ؛ public class pertest {public void test () {// تحديد فئة الطريقة ne {// تحديد طريقة الفئة الداخلية الفئة العامة fle () {// تحديد طريقة stystem.out.println ("أنا طيران!") ؛ }} ؛ NEW NE (). FLE () ؛ // استدعاء طريقة الفئة الداخلية} الفراغ الثابت العام (سلسلة [] args) {new pertest (). test () ؛ //امتحان}} ملاحظة: (1) لا يمكن تثبيت الفئة الداخلية إلا في الطريقة التي تحدد الفئة الداخلية ، ولا يمكن إنشاء مثيل لها خارج هذه الطريقة.
(2) لا يمكن للكائن الفئة الداخلية استخدام المتغيرات المحلية غير النهائية للطريقة التي توجد بها الفئة الداخلية.
لأن المتغيرات المحلية للطريقة موجودة على المكدس ، فهي موجودة فقط خلال حياة الطريقة. عندما تنتهي الطريقة ، يتم حذف بنية المكدس.
المتغيرات المحلية تصبح التاريخ. ومع ذلك ، بعد الانتهاء من الطريقة ، قد لا تزال كائنات الفئة الداخلية التي تم إنشاؤها داخل الطريقة موجودة في الكومة!
على سبيل المثال ، إذا تم نقل إشارة إليها إلى بعض التعليمات البرمجية الأخرى وتم تخزينها في متغير عضو. نظرًا لأنه لا يمكن ضمان أن تكون المتغيرات المحلية هي نفس الحياة الطويلة مثل تلك الموجودة في كائنات الفئة الداخلية ، لا يمكن للكائنات الداخلية استخدامها. (يأتي هذا الفهم من موسوعة Baidu)
3. فئة داخلية مجهولة المصدر
1) تجريد الفصول الداخلية المجهولة
package com.anonymous ؛ class public class AbstractClass {public void test () {// الطريقة هي اختبار testa a = new testa () {// تنفيذ مجردة class Override public void run () {// تنفيذ class system.out.println ("أنا أستخدم الفئة الداخلية المجانية المجهولة") ؛ }} ؛ A.Run () ؛ // استدعاء طريقة الفئة الداخلية} الفراغ الثابت العام (String [] args) {new AbstractClass (). test () ؛ // test}} // تحديد طريقة تجريدية الفئة التجريدية testa هي التشغيل () مجردة الفئة testa {public Abstract void run () ؛}2) واجهة فئة داخلية مجهولة
package com.anonymous ؛ public class testanonymous {myInterface m = new MyInterface () {// قم بتنفيذ واجهة public void eat () {// إعادة كتابة طريقة واجهة myInterface system.out.println ("أنا أتناول وجبة!") ؛ }} ؛ public void ss () {// method ss m.eat () ؛ . // test}} // تحديد طريقة واجهة على أنها eATInterface myInterface {public void eat () ؛}ملاحظة: يمكن تعريف الفئات الداخلية المجهولة في الأساليب أو في أعضاء الفصل. بغض النظر عن الفئات الداخلية المجهولة ، لا يمكن استدعاؤها مباشرة بواسطة فئات خارجية.
4. ما هو دور الفئات الداخلية؟
يمكن لكل فئة داخلية أن ترث بشكل مستقل عن التنفيذ (الواجهة) ، لذا فإن ما إذا كانت الفئة المحيطية قد ورثت تطبيقًا معينًا (واجهة) ليس له أي تأثير على الفئة الداخلية. بدون القدرة التي توفرها الفئات الداخلية لروث فصول ملموسة أو مجردة متعددة ، يصعب حل بعض مشاكل التصميم والبرمجة. من هذا المنظور ، تجعل الطبقات الداخلية حل ميراث متعدد.
واجهات تحل بعض المشكلات ، في حين تنفذ الفئات الداخلية بشكل فعال "ميراث متعدد".
شكرا لك على القراءة ، آمل أن تساعدك. شكرا لك على دعمك لهذا الموقع!