java - “构造函数语句”和“声明语句”是描述这些语句的正确名称吗?
问题描述
我对以下 Java 语句感到困惑:
ArtClass artClass0 = new ArtClass();
int int3 = 73;
boolean boolean0 = artClass0.foo(int3);
第一个语句叫constructor statement
? 对于第二个和第三个语句,它们都被认为是declaration statements
?如果是这样,我该如何区分它们?当我在我的论文中写这两个陈述时,我需要区分这两个陈述。
解决方案
它们都是局部变量声明语句,可以简单地写成
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]]];
推荐阅读
- sql - postgres - 避免创建重复的空列
- python - 尝试通过 PyChromecast Python 连接到 Google Home 时出错
- web-scraping - 谷歌表 - 在跨度类中导入 XML 标题
- django - Django - Sqlite 列名与模型字段名不同
- javascript - 构建 Ember 应用程序给我错误,无法读取 null 的属性“pkg”
- amazon-web-services - 如何从 Lambda 向 ApplicationLoadBalancer 前端的 ECS Fargate 发出请求?
- matlab - * 带有 cellstr 和 fullfile 的通配符
- javascript - 避免渲染每个 API 调用的组件
- typescript - React Navigation modal V6 with expo
- c++ - 如何正确读取所有 wav 文件的正确 Riff Wav fmt 标头数据