3 回答

TA貢獻(xiàn)1934條經(jīng)驗(yàn) 獲得超2個(gè)贊
它們都是局部變量聲明語(yǔ)句,可以簡(jiǎn)單地寫為
VariableDeclaratorId?[=?VariableInitializer]
我將向您提供JLS中用于命名非終結(jié)符的確切術(shù)語(yǔ)。下面提到的任何非終結(jié)符都可以在規(guī)范中找到。
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]]];

TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超6個(gè)贊
第一個(gè)語(yǔ)句稱為構(gòu)造函數(shù)語(yǔ)句嗎?
不,Java 中沒有“構(gòu)造函數(shù)語(yǔ)句”這樣的術(shù)語(yǔ),至少官方?jīng)]有。只有 3 種類型的語(yǔ)句:
表達(dá)聲明
聲明書
控制流語(yǔ)句
表達(dá)聲明可能包括以下表達(dá)方式;
:
賦值表達(dá)式[例如a = 5]
任何 ++ 或 --?[例如 a++]的使用
方法調(diào)用[例如 foo(a)]
對(duì)象創(chuàng)建表達(dá)式[例如 MyClass myClass = new MyClass()]
當(dāng)我們聲明一個(gè)變量時(shí),這稱為聲明語(yǔ)句。
在您的問題示例中,
ArtClass?artClass0?=?new?ArtClass();
上面的是一個(gè)對(duì)象創(chuàng)建表達(dá)式,因此我們稱之為表達(dá)式語(yǔ)句。另一方面,
int?int3?=?73; boolean?boolean0?=?artClass0.foo(int3);
在這兩種情況下,我們都聲明了變量。所以,它們是聲明語(yǔ)句。
但是,請(qǐng)注意以下聲明:
int int3; // Declaration Statement
int3 = 73; // Expression Statement
boolean boolean0; // Declaration Statement
boolean0 = artClass0.foo(int3); // Expression Statement

TA貢獻(xiàn)1779條經(jīng)驗(yàn) 獲得超6個(gè)贊
Java 語(yǔ)言的官方術(shù)語(yǔ)在Java 語(yǔ)言規(guī)范中定義。
所有三個(gè)語(yǔ)句都是局部變量聲明語(yǔ)句,但它們的變量初始值設(shè)定項(xiàng)使用不同的表達(dá)式。具體來說:
new ArtClass()
是類實(shí)例創(chuàng)建表達(dá)式73
是文字表達(dá)artClass0.foo(int3)
是一個(gè)方法調(diào)用表達(dá)式
如果您希望根據(jù)聲明的變量類型進(jìn)行區(qū)分,您可能會(huì)說第一個(gè)聲明了引用類型的變量,而其他聲明了基本類型的變量(或更具體地說是“int”或“boolean 變量”)。
添加回答
舉報(bào)