我只是注意到您可以执行System.out.println(FooObject.fooNumber = 4);
,该操作将为fooNumber分配4并输出值4。为什么在分配后输出FooNumber?
同样,优先规则规定分配首先发生,但与打印是首先发生还是分配无关。我对吗?那么为什么不先打印先前的值,然后再打印赋值呢?据我所知,子表达式在Java中是从左到右求值的,所以这里适用吗?
最佳答案
这是因为赋值后,像a = b
这样的表达式具有a
的类型和a
的值。该语句是递归的,因此a = b = c
和其他语句也相同。