Java术语嵌套类和成员类可以互换使用吗?
来自JLS:
嵌套类是任何类,其声明发生在另一个类或接口的主体内。
[...]
成员类是一个类,其声明直接包含在另一个类或接口声明的主体中
我认为成员类这个术语可能不包括匿名类和本地类,但这只是我的猜测。
答案 0 :(得分:2)
这里引用了Chapter 8. Classes:
成员类声明描述作为周围类成员的嵌套类。成员类可能是
static
,在这种情况下,他们无法访问周围类的实例变量;或者他们可能是内部阶级。
作为奖励引用,local classes绝对不是会员类:
本地类是一个嵌套类,不是任何类的成员[...]。
class Foo {
// a member class
class InstanceMember {}
// a member class
static class StaticMember {}
Foo() {
// not a member class
class LocalAndNotMember {}
// not a member class
Object anonymousAndNotMember = new Object() {};
}
}
答案 1 :(得分:0)
嵌套类可以包含静态类或非静态类,其中成员类是后者。所以成员类是嵌套类的子集。