当前位置:编程学习 > JAVA >>

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
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,