Java JLS是否将静态方法和静态变量视为类成员?
我想知道类中定义的静态方法和静态变量是否被视为该类的成员(或者术语“成员”是否仅表示实例变量/方法和内部类)Java JLS是否将静态方法和静态变量视为类成员?,java,Java,我想知道类中定义的静态方法和静态变量是否被视为该类的成员(或者术语“成员”是否仅表示实例变量/方法和内部类) Java中的类由哪些成员组成?您谈论字段和方法,然后引用静态类,但无论如何: 静态成员仍然是成员 引自 例如,字段声明是 最后可能包括静态 您谈论字段和方法,然后引用静态类,但无论如何: 静态成员仍然是成员 引自 例如,字段声明是 最后可能包括静态 成员由方法和所有变量组成,无论是静态的还是非静态的。但是,成员不包括构造函数 简而言之,类中的所有(构造函数除外)都是成员,无论是从超类继
Java中的类由哪些成员组成?您谈论字段和方法,然后引用静态类,但无论如何: 静态成员仍然是成员 引自 例如,字段声明是 最后可能包括
静态
您谈论字段和方法,然后引用静态类,但无论如何: 静态成员仍然是成员 引自 例如,字段声明是 最后可能包括
静态
成员由方法和所有变量组成,无论是静态的还是非静态的。但是,成员不包括构造函数
简而言之,类中的所有
(构造函数除外)
都是成员,无论是从超类继承的还是静态的还是非静态的。成员由方法和所有变量组成,无论是静态的还是非静态的。但是,成员不包括构造函数
简而言之,类中的所有
(构造函数除外)
都是成员,无论是从超类继承的还是从超类继承的,无论是静态的还是非静态的。中定义的JLS中的成员定义是:
类的主体声明成员(字段、方法和嵌套
类和接口)
因此,不管是静态的还是非静态的,字段或方法都是类的成员。这与英语中通常被理解为某事物的“成员”非常吻合。更值得讨论的是:
类的成员包括声明的成员和继承的成员
JLS中的成员定义如中所述: 类的主体声明成员(字段、方法和嵌套 类和接口) 因此,不管是静态的还是非静态的,字段或方法都是类的成员。这与英语中通常被理解为某事物的“成员”非常吻合。更值得讨论的是: 类的成员包括声明的成员和继承的成员
我觉得我发现了一些矛盾。请澄清。该用法与英语中“成员”的常见定义一致。但是,是的,JLS也没有任何区别。@imposificantporter我知道你在哪里弄糊涂了。实例变量vs类变量,成员vs类成员。简而言之,成员包括类中的所有内容,但构造函数除外。@user3437460实例和静态初始值设定项也不是成员。@Voo是的,谢谢你指出这一点。我觉得我发现了一些不一致之处。请澄清。该用法与英语中“成员”的常见定义一致。但是,是的,JLS也没有任何区别。@imposificantporter我知道你在哪里弄糊涂了。实例变量vs类变量,成员vs类成员。简而言之,成员包括类中的所有内容,但构造函数除外。@user3437460实例和静态初始值设定项也不是成员。@Voo是的,谢谢您指出这一点。注意:静态/实例初始值设定项当然也不是类的成员。其中定义的是成员。备注:静态/实例初始值设定项当然也不是类的成员。其中定义的是成员。
ClassMemberDeclaration:
FieldDeclaration
MethodDeclaration
ClassDeclaration
InterfaceDeclaration
;
FieldDeclaration:
{FieldModifier} UnannType VariableDeclaratorList ;
FieldModifier:
(one of)
Annotation public protected private
static final transient volatile