关于变量的有关问题!
关于变量的问题!!我想问一下第一个变量VB,为什么不会和其他方法里的变量vb冲突呢!!Java codepublic class
关于变量的问题!!
我想问一下第一个变量VB,为什么不会和其他方法里的变量vb冲突呢!!
Java codepublic class Type { /** * @param args */ public static void main(String[] args) { int vb=5; mm(); mm01(); System.out.println(vb+mm()+mm01()); } private static void p(Object o){ System.out.println(o); } private static int mm(){ int vb=3; p(vb); return vb; } private static int mm01(){ int vb=4; p(vb); return vb; } }
[解决办法]晕,我以为你说会呢,害我在那使尽找错.
你的VB只在它声明的方法里有作用,跟其它方法没关系
[解决办法]看变量的作用域只在块中,所谓的块就是指 { } 包起来的代码段。
出了自己的作用域变量就会消失,所引用的对象就有可能会被垃圾回收器进行内存回收处理。
[解决办法]vb是一个局部变量,它的作用域只在声明它的代码块里有效,
出了这个区域,它将不可视。
此题的vb这个变量都是在方法里声明的,各个方法是彼此独立的,
所以这样在多个方法中创建同一个变量是可以的,你还可以再声明一个
全局的vb变量也是没有问题的。因为在执行方法时,方法里的vb变量将
把全局变量屏蔽掉。
[解决办法]你在 mm()这个方法里定义了vb 是这个方法(mm())的变量
同理mm01()这个方法里的vb也是 mm01()这个方法的方法变量
同理main函数里的vb也在它的那个范围有效,所以他们3个是不会冲突的
这个是变量的作用域的知识
[解决办法] 就跟IP地址一样``在家里的局域网里`机器的IP为192.168.1.100 公司里电脑的IP也是192.168.1.100 .你不关电脑去上班.到公司的时候再开电脑的时候,ip不会发生冲突.与这同一个道理```
```他们互相都看不见对方``当然不会有冲突``
[解决办法]全局变量 和 局部变量
int i = 0;
for(int i = 0; i < 3; i++){
}