what is expression in java (在Java中,表达式的定义是什么)
前言
或许可以给这篇文章起一个偏标题党的名字《老司机带你一文彻底搞懂Java中的表达式和语句》,不过我既不是老司机也不敢这么嚣张,哈哈哈。
一直以来我都有一个疑问,什么才算是表达式(expression)?
表达式这个名词我们经常会遇到,不仅如此,还会遇到很多相关的,比如,算术表达式,逻辑表达式等等。但是什么才算是表达式呢。
从最开始看《Java从入门到放弃》这类的书籍,书中就没有对表达式做一个完整的定义,表达式这个词突然就出现在你面前了,或许作者默认我们都懂了,或许作者认为这是一个数学概念,不过我一直以来都有这个疑问。
后来看《Java核心技术》这样的经典书籍时发现,书中也没有对表达式做一个详细的介绍,在书的第35页,表达式这个名词就突然生硬的出现在了我的面前。
在看一些技术博客的时候,也会在文章中出现表达式这个词,不过上面这些资料中有的对表达式简单的描述了一下,有的就默认你懂了。但我依然不懂什么是表达式,一个有分号(;)的语句就算表达式?还是一个数字也算是表达式?
自己动手,丰衣足食。
最终我还是自己动手去搜索,最开始搜中文,Java中表达式的定义是什么,什么是表达式之类的。维基百科,百度百科,一些博客的总结我都不是太确信,也不是太明白。后来我又用英文搜,whai is expression,不得不承认看一些英文文章确实有些抵触啊,还是没太看懂。我又搜what is expression 的时候搜索引擎自动出现了 in java 的提示,看来应该是好多人都有相同的疑问的。看了一个英文的总结博客,没太看懂。后来无意间发现了Java的官方教程,好了,这下应该算是找到源头了吧。
官方Tutorials中写道------An expression is a construct made up of variables, operators, and method invocations, which are constructed according to the syntax of the language, that evaluates to a single value. (一个表达式是由变量,运算符和方法调用,根据语言的语法构造的一个构建体,计算结果为单个值。)
然后官网给出了一些示例:(以下粗体所示)
(下面彩色的更清晰些,不过不能对代码加粗。)
int cadence = 0;
anArray[0] = 100;
System.out.println("Element 1 at index 0: " + anArray[0]);
int result = 1 + 2; // result is now 3
if (value1 == value2)
System.out.println("value1 == value2");
不过以我现在的水平还不能够从中总结出一些东西(但是下面有4类官方expression示例),所以只好放上官方Tutorials链接,方便大家在有疑问时自己查阅比较。不过一些博客中写的:一个有分号(;)的语句就是一个表达式。仅仅一个分号(;)也是一个表达式之类的肯定是不对的。
One More Thing
不单单是发布会可以有,文章也可以有one more thing。因为The Java™ Tutorials中是把Expressions, Statements, and Blocks这三个放在一块讲的。所以我们还可以顺便了解一下到底什么在Java中可以称之为语句(what is statement in java)。
Tutorials上说下列类型的表达式可以通过加分号(;)可以变成语句。这也从另一方面说明了下面的例子只要去掉最后的分号(;),就可以看作表达式。
- Assignment expressions
- Any use of + + or - -
- Method invocations
- Object creation expressions
下面是一些对应的示例:
// assignment statement
aValue = 8933.234;
// increment statement
aValue++;
// method invocation statement
System.out.println("Hello World!");
// object creation statement
Bicycle myBike = new Bicycle();
除了表达式语句,还有两种其他类型的语句:声明语句和流程控制语句。
声明语句声明一个变量。
// declaration statement
double aValue = 8933.234;
所以总的来说,statement可以分为3类。
- 表达式语句
- 声明语句
- 流程控制语句
总结
-
An expression is a construct made up of variables, operators, and method invocations, which are constructed according to the syntax of
the language, that evaluates to a single value.
(一个表达式是由变量,运算符和方法调用,根据语言的语法构造的一个构建体,计算结果为单个值。) -
statement可以分为3类。
- 表达式语句
- 声明语句
- 流程控制语句