求高手帮我解读一下这个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);
}
} 展开
为什么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);
}
} 展开
3个回答
展开全部
i++ 是先将 i 的值代入运算 才实行i=i+1的,而 ++i则是先将 i 加一 然后在代入运算
id = sid++;
相当于
id = sid;
sid = sid + 1;
id = sid++;
相当于
id = sid;
sid = sid + 1;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
id = sid ++这句是先把sid赋给id之后sid才自增的
追问
为什么sid++ = 1,直接赋值给id呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询