求高手帮我解读一下这个java小程序

答案是0,baby1;1,baby2;为什么id=sid++sid都已经是1了。为什么baby1的id还是0?id++不是等于1吗?publicclassTestStat... 答案是0,baby1; 1,baby2;
为什么id = sid++ sid都已经是1了。为什么baby1 的id 还是0?id++不是等于1吗?

public class TestStatic {
public static void main(String[] args){
Person.sid = 0;
Person p1 = new Person("baby1");
Person p2 = new Person("baby2");
p1.m();
p2.m();
}
}

class Person{
static int sid = 0;
int id ;
String name;
public Person(String name) {
this.name = name;
id = sid ++;
}

public void m(){
System.out.println(id+","+name);
}

}
展开
 我来答
gxq926
2012-10-14 · TA获得超过113个赞
知道小有建树答主
回答量:162
采纳率:0%
帮助的人:86.4万
展开全部
因为id=sid++相当于id=sid;sid=sid+1两条语句。sid++就是本次的值不变,下次用到时sid将加1。
追问
那如果换成了id = ++sid呢?
追答
这样id就会变成1。因为++sid是本次运算加+1。这就是前++的级别比后++的级别高
灵活又坦率的小雀2202
2012-10-14
知道答主
回答量:18
采纳率:0%
帮助的人:15万
展开全部
i++ 是先将 i 的值代入运算 才实行i=i+1的,而 ++i则是先将 i 加一 然后在代入运算

id = sid++;
相当于
id = sid;
sid = sid + 1;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
专治八阿哥的孟老师
2012-10-14 · 爱生活,爱编程,专心于学习技术和撸猫
专治八阿哥的孟老师
采纳数:494 获赞数:3914

向TA提问 私信TA
展开全部
id = sid ++这句是先把sid赋给id之后sid才自增的
追问
为什么sid++ = 1,直接赋值给id呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式