Java赋值静态变量++

use*_*074 3 java variables static variable-assignment

当我将静态int的值++分配给另一个int时,它按照似乎不遵循Java操作顺序的顺序执行赋值.不应该在++之前做到=吗?

public class Book
{
  private int id;
  private static int lastID = 0;

  public Book ()
  {
    id=lastID++;
  }
}
Run Code Online (Sandbox Code Playgroud)

在我构建的第一本书中,id为0.不应该是1,因为lastID++应该先发生吗?

小智 5

您正在使用postfix ++运算符.这将在使用变量后递增(在您的情况下是赋值).

如果要在分配前增加使用此项

id = ++lastID;
Run Code Online (Sandbox Code Playgroud)

这称为前缀++运算符.