我只是注意到您可以执行System.out.println(FooObject.fooNumber = 4);,该操作将为fooNumber分配4并输出值4。为什么在分配后输出FooNumber?
同样,优先规则规定分配首先发生,但与打印是首先发生还是分配无关。我对吗?那么为什么不先打印先前的值,然后再打印赋值呢?据我所知,子表达式在Java中是从左到右求值的,所以这里适用吗?

最佳答案

这是因为赋值后,像a = b这样的表达式具有a的类型和a的值。该语句是递归的,因此a = b = c和其他语句也相同。

09-30 12:12
查看更多