3 回答

TA貢獻1934條經(jīng)驗 獲得超2個贊
它們都是局部變量聲明語句,可以簡單地寫為
VariableDeclaratorId?[=?VariableInitializer]
我將向您提供JLS中用于命名非終結(jié)符的確切術(shù)語。下面提到的任何非終結(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貢獻1862條經(jīng)驗 獲得超6個贊
第一個語句稱為構(gòu)造函數(shù)語句嗎?
不,Java 中沒有“構(gòu)造函數(shù)語句”這樣的術(shù)語,至少官方?jīng)]有。只有 3 種類型的語句:
表達聲明
聲明書
控制流語句
表達聲明可能包括以下表達方式;
:
賦值表達式[例如a = 5]
任何 ++ 或 --?[例如 a++]的使用
方法調(diào)用[例如 foo(a)]
對象創(chuàng)建表達式[例如 MyClass myClass = new MyClass()]
當(dāng)我們聲明一個變量時,這稱為聲明語句。
在您的問題示例中,
ArtClass?artClass0?=?new?ArtClass();
上面的是一個對象創(chuàng)建表達式,因此我們稱之為表達式語句。另一方面,
int?int3?=?73; boolean?boolean0?=?artClass0.foo(int3);
在這兩種情況下,我們都聲明了變量。所以,它們是聲明語句。
但是,請注意以下聲明:
int int3; // Declaration Statement
int3 = 73; // Expression Statement
boolean boolean0; // Declaration Statement
boolean0 = artClass0.foo(int3); // Expression Statement

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