猿问

“构造函数语句”和“声明语句”是描述这些语句的正确名称吗?

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


ArtClass artClass0 = new ArtClass();

int int3 = 73;

boolean boolean0 = artClass0.foo(int3);

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


catspeake
浏览 147回答 3
3回答

撒科打诨

它们都是局部变量声明语句,可以简单地写为VariableDeclaratorId [= VariableInitializer]我将向您提供JLS中用于命名非终结符的确切术语。下面提到的任何非终结符都可以在规范中找到。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]]];

阿波罗的战车

第一个语句称为构造函数语句吗?不,Java 中没有“构造函数语句”这样的术语,至少官方没有。只有 3 种类型的语句:表达声明声明书控制流语句表达声明可能包括以下表达方式;:赋值表达式[例如a = 5]任何 ++ 或 -- [例如 a++]的使用方法调用[例如 foo(a)]对象创建表达式[例如 MyClass myClass = new MyClass()]当我们声明一个变量时,这称为声明语句。在您的问题示例中,ArtClass artClass0 = new ArtClass();上面的是一个对象创建表达式,因此我们称之为表达式语句。另一方面,int int3 = 73; boolean boolean0 = artClass0.foo(int3);在这两种情况下,我们都声明了变量。所以,它们是声明语句。但是,请注意以下声明:int int3; // Declaration Statementint3 = 73; // Expression Statementboolean boolean0; // Declaration Statementboolean0 = artClass0.foo(int3); // Expression Statement

哆啦的时光机

Java 语言的官方术语在Java 语言规范中定义。所有三个语句都是局部变量声明语句,但它们的变量初始值设定项使用不同的表达式。具体来说:new ArtClass()是类实例创建表达式73是文字表达artClass0.foo(int3)是一个方法调用表达式如果您希望根据声明的变量类型进行区分,您可能会说第一个声明了引用类型的变量,而其他声明了基本类型的变量(或更具体地说是“int”或“boolean 变量”)。
随时随地看视频慕课网APP

相关分类

Java
我要回答