为了账号安全,请及时绑定邮箱和手机立即绑定

Java 中的自增运算符可以使用什么类型的操作数?

Java 中的自增运算符可以使用什么类型的操作数?

潇潇雨雨 2023-07-19 16:29:37
我不知道如果在 Java 中的表达式上应用增量运算符会发生什么。int ai[] = new ai[10];ai[0]++;// ***class Car {  public int yearMade = 0;}class Person {  public Car myCar = new Car();}Person p = new Person();p.myCar.yearMade++;您可以按照第一个示例所示的方式递增数组的元素吗?您能否按照我在第二个示例中所示的方式增加类中的字段(我确实了解封装和 getters/setters,我的问题是面向语法语义的)?我记得 C/C++ 的时代。例如,p -> x++ 曾经存在问题。使用增量或减量时,有时需要将复杂表达式括在括号中。感谢您的任何提示。
查看完整描述

1 回答

?
猛跑小猪

TA贡献1858条经验 获得超8个赞

您的两个问题的答案都是“是的,您可以”。和p.myCar.yearMade都是ai[0]变量(分别是实例变量和局部变量),因此可以用作这四个运算符中任何一个的操作数。

4.12. 变量

变量是一个存储位置,并且具有关联的类型,有时称为其编译时类型,即原始类型(第 4.2 节)或引用类型(第 4.3 节)。

变量的值可通过赋值 (§15.26) 或前缀或后缀 ++(递增)或 --(递减)运算符进行更改(§15.14.2、§15.14.3、§15.15.1、§15.15.2) )。

...

15.14.2。后缀自增运算符 ++

在运行时,如果操作数表达式的求值突然完成,则后缀增量表达式也会出于同样的原因突然完成,并且不会发生增量。否则,将值 1 添加到变量的值中,并将总和存储回变量中。在相加之前,对值 1 和变量的值执行二进制数值提升(第 5.6.2 节)。如有必要,在存储变量之前,可以通过缩小原始转换(第 5.1.3 节)和/或对变量的类型进行装箱转换(第 5.1.7 节)来缩小总和。后缀增量表达式的值是存储新值之前变量的值。


查看完整回答
反对 回复 2023-07-19
  • 1 回答
  • 0 关注
  • 81 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信