嵌套 类 和成员 类 是一回事吗?
Are nested classes and member classes the same thing?
Java 术语 嵌套 class 和 成员 class 可以互换使用或不是吗?
来自 JLS:
A nested class is any class whose declaration occurs within the body of another class or interface.
[…]
A member class is a class whose declaration is directly enclosed in the body of another class or interface declaration
我认为 classes 成员一词可能不包括 anonymous classes 和 local class es,但这只是我的猜测。
嵌套 类 可以包括静态或非静态 类,其中成员 类 是后者。所以成员 类 是嵌套 类.
的子集
这是来自 Chapter 8. Classes 的一段好话:
Member class declarations describe nested classes that are members of the surrounding class. Member classes may be static
, in which case they have no access to the instance variables of the surrounding class; or they may be inner classes.
作为奖励,local classes 绝对不是会员 类:
A local class is a nested class that is not a member of any class [...].
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() {};
}
}
Java 术语 嵌套 class 和 成员 class 可以互换使用或不是吗?
来自 JLS:
A nested class is any class whose declaration occurs within the body of another class or interface.
[…]
A member class is a class whose declaration is directly enclosed in the body of another class or interface declaration
我认为 classes 成员一词可能不包括 anonymous classes 和 local class es,但这只是我的猜测。
嵌套 类 可以包括静态或非静态 类,其中成员 类 是后者。所以成员 类 是嵌套 类.
的子集这是来自 Chapter 8. Classes 的一段好话:
Member class declarations describe nested classes that are members of the surrounding class. Member classes may be
static
, in which case they have no access to the instance variables of the surrounding class; or they may be inner classes.
作为奖励,local classes 绝对不是会员 类:
A local class is a nested class that is not a member of any class [...].
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() {};
}
}