关于static作用域 和执行过程的问题?
发布网友
发布时间:2022-05-13 10:49
我来回答
共1个回答
热心网友
时间:2022-04-24 02:16
你是想问什么呢?
1、好像是没有public class static{} 这样的写法的吧?
2、运行程序,会先运行静态块static中的内容。定义了一个int x =5,这个作用域只在于static的{}里面有用。
3、定义了两个静态变量x,y都没有赋值,因为是成员变量所以int默认为0.
4、运行main函数。第一个输出-1,很简单。
5、调用method方法。y = x++ + ++x;这个运算之后 y=0,x=1。输出0。
6、输出x + y + ++x 可以得到1 + 0 + 2 =3。结束追问method方法运行完之后,y怎么是0,还有x怎么是1?
我感觉运行完method方法后x是2,y是1.
它是怎么运行的 ?
谢谢
追答那是x++和++x的区别,在进行运算之前x == -1。把x++和++x看做两个变量a,b。 x++表示是运算后x+1,所以这时候a为-1,x==0;加上++x这时候是先+1再赋值;x =1; b=1;y=a+b=-1+1=0提交回答;