ما الفرق بين الفئة الداخلية (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()` وهذا يعمل، لكنه يبدو غ
```