加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java赋值静态变量

发布时间:2020-12-15 05:10:12 所属栏目:Java 来源:网络整理
导读:当我将静态int的值赋给另一个int时,它按照似乎不遵循 Java操作顺序的顺序执行赋值.不应该在=之前做吗? public class Book{ private int id; private static int lastID = 0; public Book () { id=lastID++; }} 在我构建的第一本书中,id为0.不应该是1,因为la
当我将静态int的值赋给另一个int时,它按照似乎不遵循 Java操作顺序的顺序执行赋值.不应该在=之前做吗?

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

  public Book ()
  {
    id=lastID++;
  }
}

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

解决方法

Shouldn’t it do the ++ before the =?

– >是首先评估如下:

你的表达:

id = lastID++;

等同于以下表达式

temp = lastId;    // temp is 0
lastID = lastID + 1;  // increament,lastId becomes 1
id = temp;   // assign old value i.e. 0

所以你的id为0,在这种情况下你应该使用pre-increament operator():

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

  public Book ()
  {
    id = ++lastID; // pre-increament
  }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读