今天犯了个有点二逼的错误.....

时间:2021-04-05 21:09:07
 static int count = 0;
  public int count () {
  return count++;
  }

System.out.println(m.count());
System.out.println(m.count());

可是想想为什么输出的第一个是0 ,
第二个是1 了 .. 不是说return 后就不会进行后面的了吗....???? 

12 个解决方案

#1



int temp = count;
count = count + 1;
return temp;

是这样子的,返回的是0,但count的值已经变成1了

#2


return  count++, 先返回count的值,然后count再自加1,你第一次调用直接返回count的初值,第二次count已经自加过了。

#3


++优先级最低,在return之后才操作。

#4


这种问题不是你2B,是设计者的问题。

不过你确实不应该写这种代码。。。坑

#5


静态变量初始化一次,是属于类的,所以每次+,都是在以前的基础上的,第一次返回的是0,然后++
第二次是在第一次++基础上再++的。

#6


正常为了看静态变量的效果应该是用++count 不是count++,安稳点先count++再return count
你只是没弄懂count++而已

#7


return后在自加1

#8


鄙视秀优越的

#9


第一行输出时,函数返回值为0,但是注意因为自增操作全局变量count已经变为了1;
第二此输出时,函数返回值为1,由于自增count变为了2

#10


哥们,这个是一个理解的问题。return后边的语句确实不会执行,但是count++这是一个表达式,是return执行的内容。如果在这个表达式之后,还有语句的话,就是在count++后边的分号之后还有内容,那些内容就不会被执行了。在你的代码中,count是一个静态变量,属于类,不属于单独的某一个对象,所以会出现多次调用时,结果自增的情况。

#11


新手观点,刚刚接触java10天。高手不要喷哦。。。。
如果这样理解:
第一次执行的是调用新建对象m的值。自加在变量的后面,对象变量返回值后在自加。返回值是0,变量count值自加变成1;
第二次执行是调用已建立对象m的值。对象m调用方法count,返回值1,变量count值自加变成2。

是错误的!!!!!!!!!!

我认为正确理解是:
变量count是静态成员变量,存储在方法区内,不受局部变量影响。
无论你是调用什么对象,只要执行了count方法后,成员变量count的值都会自增。

#12


count=0 时 返回了 地一个输出0 之后count 自加1 变为1 作为第二个输出  

主要就是++ 的优先级低于return

#1



int temp = count;
count = count + 1;
return temp;

是这样子的,返回的是0,但count的值已经变成1了

#2


return  count++, 先返回count的值,然后count再自加1,你第一次调用直接返回count的初值,第二次count已经自加过了。

#3


++优先级最低,在return之后才操作。

#4


这种问题不是你2B,是设计者的问题。

不过你确实不应该写这种代码。。。坑

#5


静态变量初始化一次,是属于类的,所以每次+,都是在以前的基础上的,第一次返回的是0,然后++
第二次是在第一次++基础上再++的。

#6


正常为了看静态变量的效果应该是用++count 不是count++,安稳点先count++再return count
你只是没弄懂count++而已

#7


return后在自加1

#8


鄙视秀优越的

#9


第一行输出时,函数返回值为0,但是注意因为自增操作全局变量count已经变为了1;
第二此输出时,函数返回值为1,由于自增count变为了2

#10


哥们,这个是一个理解的问题。return后边的语句确实不会执行,但是count++这是一个表达式,是return执行的内容。如果在这个表达式之后,还有语句的话,就是在count++后边的分号之后还有内容,那些内容就不会被执行了。在你的代码中,count是一个静态变量,属于类,不属于单独的某一个对象,所以会出现多次调用时,结果自增的情况。

#11


新手观点,刚刚接触java10天。高手不要喷哦。。。。
如果这样理解:
第一次执行的是调用新建对象m的值。自加在变量的后面,对象变量返回值后在自加。返回值是0,变量count值自加变成1;
第二次执行是调用已建立对象m的值。对象m调用方法count,返回值1,变量count值自加变成2。

是错误的!!!!!!!!!!

我认为正确理解是:
变量count是静态成员变量,存储在方法区内,不受局部变量影响。
无论你是调用什么对象,只要执行了count方法后,成员变量count的值都会自增。

#12


count=0 时 返回了 地一个输出0 之后count 自加1 变为1 作为第二个输出  

主要就是++ 的优先级低于return