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应该先发生吗? 解决方法
– >是首先评估如下: 你的表达: 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 } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |