问题描述
Bicycles myBike = new Bicycles();
大家好,对象创建语句是声明语句或表达式语句。在oraclesit中,我发现它是一个表达式语句。但我认为如果是声明语句更合理。您的回答将不胜感激。谢谢
解决方法
这两者都是。声明一个变量,然后用表达式的值对其进行初始化。
这等同于:
Bicycles myBikes; // declaration
myBikes = new Bicycles(); // expression
,
这个:
Bicycles myBike = new Bicycles();
是 Field Declaration 或 Local Variable Declaration Statement。
Expression Statement 的示例是
myBike = new Bicycles();
需要在其他地方声明 myBike
的地方。
这些语句都不一定与对象创建相关联。
对象创建(或者,确切的术语是:Class Instance Creation Expression)不是Field Declaration
,也不是Local Variable Declaration Statement
,也不是Expression Statement
。
Class Instance Creation Expression
只是一个 Expression
,仅此而已!
请注意,Field Declaration
和 Local Variable Declaration Statement
允许使用表达式来初始化字段/局部变量。 Expression Statement
需要一个表达式。
以下是表达式语句和声明语句的示例:
Bicycles myBike = new Bicycles();
下面给出的是 an excerpt from Oracle's tutorial:
表达式是由变量、运算符和 方法调用,根据以下语法构造 评估为单个值的语言。你已经看过例子 表达式,下面以粗体表示:
int cadence = 0;
anArray[0] = 100;
在同一个页面,你会发现
除了表达式语句,还有另外两种 语句:声明语句和控制流语句。一种 声明语句声明一个变量。你见过很多例子 声明语句已经:
// declaration statement
double aValue = 8933.234;
到现在为止,您可能已经猜到以下是声明语句,而不是表达式语句:
Bicycles myBike;
以下是表达式语句,不是声明语句:
myBike = new Bicycles();