Avatar ·

ما الفرق بين الفئة الداخلية (inner class) والفئة المتداخلة الثابتة (static nested class) في Java؟

```html مرحباً أيها الزملاء! لقد بدأت للتو في تعلم Java وواجهت موضوع الفئات المتداخلة. أقرأ مصادر مختلفة، لكنني لا أستطيع فهم الفرق الواضح بين inner class (الفئة الداخلية) و static nested class (الفئة المتداخلة الثابتة). يبدو أن كلاهما يُعلن داخل فئة أخرى، لكن سلوكهما مختلف. على سبيل المثال، لدي هذا الكود: ```java public class Outer { private String message = "Hello from Outer"; class Inner { public void print() { System.out.println(message); } } static class StaticNested { public void print() { // Здесь я не могу обратиться к message напрямую // System.out.println(message); // Ошибка компиляции } } } ``` الأسئلة: 1. لماذا يمكن لـ Inner الوصول إلى الحقل message بينما لا يستطيع StaticNested ذلك؟ مع أن كلاهما داخل Outer. 2. كيف يتم إنشاء نسخ من هذه الفئات بشكل صحيح؟ لقد جربت `new Outer().new Inner()` وهذا يعمل، لكنه يبدو غ ```