static问题求教
public class two {private static int mid =0;
private String name;
int id;
two(String name){
this.name =name;
id =mid++;
}
public void info(){
System.out.println(id);
}
public static void main(String[] args) {
two.mid =100;
two m = new two("pipi");
m.mid = 2000;
two s =new two("mimi");
m.info();
s.info();
}
}
输出的答案是100
2000
问题是为什么是100和2000,应该是101和2001,因为这个式子id =mid++;,然而却没有加一,为什么 --------------------编程问答-------------------- id=mid++
和
id=++mid
是不一样,理解这个就知道了 --------------------编程问答-------------------- 加了一,但是你看不到效果。因为你写的是mid++,而不是++mid
你可以自行Google ++在前面和后面的区别。
我只提醒你如果你想看到效果,请修改为:
id = ++mid;
或者
id = mid + 1; --------------------编程问答-------------------- mid++;是后置运算,在语句结束时进行加1操作,也就是遇到语句结束符 ; 才会加1
++mid 是前置运算,先进行运算,再赋值给左侧变量 --------------------编程问答-------------------- 恩,就是,之前学过,后来很少用就给忘了,斑竹们一提醒,想起来了,谢谢啦@yijiehuanshen,@ldh911,@DriftKing,太感谢了,对于菜鸟,刚开始自学,什么都不会,也感谢csdn
补充:Java , Eclipse