الوصول إلى فئة غير عالية المستوى بدون فئة المستوى الأعلى في جافا
-
11-07-2019 - |
سؤال
لدي ملف جافا 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 ؛ في هذه الحالة ، يتم استخدام الحزمة الفارغة نظرًا لعدم وجود بيان حزمة للملف المصدر.