我想知道一个类中定义的静态方法和静态变量是否被认为是该类的成员(或者如果术语'成员'仅表示实例变量/方法和内部类)
哪些成员的类由Java组成?
答案 0 :(得分:2)
§8中定义的JLS中成员的定义是:
类的主体声明成员(字段和方法以及嵌套 类和接口),
所以是静态与否,字段或方法是该类的成员。这与通常被理解为"成员"的情况非常吻合。一些英文的东西。可能更有争议的是:
类的成员包括已声明和继承的成员
答案 1 :(得分:1)
你谈论字段和方法,然后引用静态类,但无论如何:
静态成员仍然是成员。
ClassMemberDeclaration: FieldDeclaration MethodDeclaration ClassDeclaration InterfaceDeclaration ;
例如,字段声明是specified here
FieldDeclaration: {FieldModifier} UnannType VariableDeclaratorList ;
最后FieldModifier可能包括static
FieldModifier: (one of) Annotation public protected private static final transient volatile
答案 2 :(得分:1)
成员包括方法和所有变量,无论是否为静态。但是成员不包括构造函数。
简而言之,类中的所有{{1}}都是成员,无论是否继承自超类,无论是静态还是非静态。