Java, Statements, 对象创建是声明语句还是表达式语句?

问题描述

Bicycles myBike = new Bicycles();

大家好,对象创建语句是声明语句或表达式语句。在oraclesit中,我发现它是一个表达式语句。但我认为如果是声明语句更合理。您的回答将不胜感激。谢谢

解决方法

这两者都是。声明一个变量,然后用表达式的值对其进行初始化。

这等同于:

Bicycles myBikes; // declaration
myBikes = new Bicycles(); // expression
,

这个:

Bicycles myBike = new Bicycles();

Field DeclarationLocal 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 DeclarationLocal 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();