绝了真是。
前几天刚看的static
的一些东西,这就栽里面了。
再次记录一下。
设置一个全局变量 a ,初始值为0
设置一个方法change1(),将 a 的值变为1;
设置一个方法change2(),将 a 的值变为2;
设置一个方法run(),获取 a 的值,根据 a 的值再进行其他操作。
然后有意思的就来了
无论如何调用change1()和change2()
在run()中获取到的 a 的值都是初始值 0;
为什么?
因为全局变量 a 没有加static
所以每次调用的时候都是相当于new 类名().a
这样每次都是一个新的 a,所以在run()中获取到的 a 和在change1()和change2()
中的 a 不是同一个 a,所以每次获取到的都是初始值。
提醒:
以后要是涉及到一个变量需要在多个地方使用的情况,一定要在定义的时候加static
唉...