首页 > 解决方案 > “构造函数语句”和“声明语句”是描述这些语句的正确名称吗?

问题描述

我对以下 Java 语句感到困惑:

ArtClass artClass0 = new ArtClass();
int int3 = 73;
boolean boolean0 = artClass0.foo(int3);

第一个语句叫constructor statement? 对于第二个和第三个语句,它们都被认为是declaration statements?如果是这样,我该如何区分它们?当我在我的论文中写这两个陈述时,我需要区分这两个陈述。

标签: javaconstructorexpressionvariable-declarationjls

解决方案


它们都是局部变量声明语句,可以简单地写成

VariableDeclaratorId [= VariableInitializer]

我将为您提供JLS中用于命名nonterminals的确切术语。下面提到的任何非终结符都可以在规范中找到。

ArtClass artClass0 = new ArtClass();

[UnannReferenceType [UnannClassOrInterfaceType]] Identifier
     = [Primary [PrimaryNoNewArray [ClassInstanceCreationExpression]]];

 int int3 = 73;

[UnannPrimitiveType [NumericType [IntegralType [int]]]] Identifier
    = [Literal [IntegerLiteral [DecimalIntegerLiteral]]];

boolean boolean0 = artClass0.foo(int3);

[UnannPrimitiveType [boolean]] Identifier
    = [Primary [PrimaryNoNewArray [MethodInvocation]]];

推荐阅读