الوصول إلى فئة غير عالية المستوى بدون فئة المستوى الأعلى في جافا

StackOverflow https://stackoverflow.com/questions/325114

سؤال

لدي ملف جافا TestThis.java مثل ما يلي:

class A
{
    public void foo() 
    {
        System.out.println("Executing foo");
    }
}

class B
{
    public void bar()
    {
        System.out.println("Executing bar");
    }
}

يتم تجميع ملف الكود أعلاه بشكل جيد دون أي تحذيرات/أخطاء. هل هناك أي طريقة يمكنني من خلالها الوصول إلى أي فئة A أو B بدون فئة المستوى الأعلى من أي فئة خارجية أخرى؟

إذا كان لا ، فلماذا تسمح Java حتى تجميع هذه الملفات بدون فئة المستوى الأعلى؟

هل كانت مفيدة؟

المحلول

كالعادة (على سبيل المثال ، الوصول من test.java):

public class Test {
    public static void main(String... args) {
        A a = new A();
        a.foo();
        B b = new B();
        b.bar();
    }
}

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

نصائح أخرى

يمكن لأي فئة أخرى في نفس الحزمة الوصول إلى A و B ؛ في هذه الحالة ، يتم استخدام الحزمة الفارغة نظرًا لعدم وجود بيان حزمة للملف المصدر.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top