我不知道如果在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++;可以按照第一个示例显示的方式增加数组的元素吗?
你能在类中增加一个字段(我确实知道封装和getter/setters,我的问题是面向语法的),这是我在第二个例子中所展示的方式吗?
我记得C/C++的年龄。例如,p -> x++曾经有一个问题。在使用增量或递减时,有时需要将复杂表达式括在括号中。
谢谢你的暗示。
发布于 2019-09-09 15:16:27
你们两个问题的答案都是“是的,你可以”。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)来缩小和。后缀增量表达式的值是存储新值之前变量的值。
https://stackoverflow.com/questions/57856476
复制相似问题