By default, an inner class is non-static:
public class AThis fragment defines the class A which contains a non-static inner class B.
{
int y;
public class B
{
int x;
void f () {}
}
}
A non-static inner class can be instantiated only inside a non-static method of the outer class. This is because every instance of a non-static inner class must be associated with an instance of the outer class. In a sense, every instance of a non-static inner class exists ``inside'' an instance of the outer class. A single instance of the outer class may have associated with it more than one instance of the inner class.
Because an instance of a non-static inner class has an associated instance of the outer class, the methods of the inner class can access directly any of the members (fields or methods) of the outer class instance. For example, the f method defined above can access both x and y directly.
The Java keyword this can be used in a non-static method to refer to the current object instance. Thus in the method f, this refers to an instance of the inner B class. Every non-static inner class is associated with an instance of the outer class. To access the outer class instance inside the method f we write A.this.
本文深入探讨了Java中非静态内部类的概念与用法。详细解释了非静态内部类实例化的过程,强调其与外部类实例之间的关联,并展示了内部类如何访问外部类成员变量的方法。
8313

被折叠的 条评论
为什么被折叠?



