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++而已
你只是没弄懂count++而已
#7
return后在自加1
#8
鄙视秀优越的
#9
第一行输出时,函数返回值为0,但是注意因为自增操作全局变量count已经变为了1;
第二此输出时,函数返回值为1,由于自增count变为了2
第二此输出时,函数返回值为1,由于自增count变为了2
#10
哥们,这个是一个理解的问题。return后边的语句确实不会执行,但是count++这是一个表达式,是return执行的内容。如果在这个表达式之后,还有语句的话,就是在count++后边的分号之后还有内容,那些内容就不会被执行了。在你的代码中,count是一个静态变量,属于类,不属于单独的某一个对象,所以会出现多次调用时,结果自增的情况。
#11
新手观点,刚刚接触java10天。高手不要喷哦。。。。
如果这样理解:
第一次执行的是调用新建对象m的值。自加在变量的后面,对象变量返回值后在自加。返回值是0,变量count值自加变成1;
第二次执行是调用已建立对象m的值。对象m调用方法count,返回值1,变量count值自加变成2。
是错误的!!!!!!!!!!
我认为正确理解是:
变量count是静态成员变量,存储在方法区内,不受局部变量影响。
无论你是调用什么对象,只要执行了count方法后,成员变量count的值都会自增。
如果这样理解:
第一次执行的是调用新建对象m的值。自加在变量的后面,对象变量返回值后在自加。返回值是0,变量count值自加变成1;
第二次执行是调用已建立对象m的值。对象m调用方法count,返回值1,变量count值自加变成2。
是错误的!!!!!!!!!!
我认为正确理解是:
变量count是静态成员变量,存储在方法区内,不受局部变量影响。
无论你是调用什么对象,只要执行了count方法后,成员变量count的值都会自增。
#12
count=0 时 返回了 地一个输出0 之后count 自加1 变为1 作为第二个输出
主要就是++ 的优先级低于return
主要就是++ 的优先级低于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++而已
你只是没弄懂count++而已
#7
return后在自加1
#8
鄙视秀优越的
#9
第一行输出时,函数返回值为0,但是注意因为自增操作全局变量count已经变为了1;
第二此输出时,函数返回值为1,由于自增count变为了2
第二此输出时,函数返回值为1,由于自增count变为了2
#10
哥们,这个是一个理解的问题。return后边的语句确实不会执行,但是count++这是一个表达式,是return执行的内容。如果在这个表达式之后,还有语句的话,就是在count++后边的分号之后还有内容,那些内容就不会被执行了。在你的代码中,count是一个静态变量,属于类,不属于单独的某一个对象,所以会出现多次调用时,结果自增的情况。
#11
新手观点,刚刚接触java10天。高手不要喷哦。。。。
如果这样理解:
第一次执行的是调用新建对象m的值。自加在变量的后面,对象变量返回值后在自加。返回值是0,变量count值自加变成1;
第二次执行是调用已建立对象m的值。对象m调用方法count,返回值1,变量count值自加变成2。
是错误的!!!!!!!!!!
我认为正确理解是:
变量count是静态成员变量,存储在方法区内,不受局部变量影响。
无论你是调用什么对象,只要执行了count方法后,成员变量count的值都会自增。
如果这样理解:
第一次执行的是调用新建对象m的值。自加在变量的后面,对象变量返回值后在自加。返回值是0,变量count值自加变成1;
第二次执行是调用已建立对象m的值。对象m调用方法count,返回值1,变量count值自加变成2。
是错误的!!!!!!!!!!
我认为正确理解是:
变量count是静态成员变量,存储在方法区内,不受局部变量影响。
无论你是调用什么对象,只要执行了count方法后,成员变量count的值都会自增。
#12
count=0 时 返回了 地一个输出0 之后count 自加1 变为1 作为第二个输出
主要就是++ 的优先级低于return
主要就是++ 的优先级低于return