问题描述
- java中的变量的作用域问题
-
新人初学java,在变量的作用域这里卡了下
我知道全局变量和局部变量,但是如果我在main的开头就申明了一个变量,那这个变量应该是全局变量吧,下面所有的方法都可以调用这些变量,但是如果我在main函数中间申明了一个变量,那这个变量算什么?还算是全局变量吗?是不是只有后面的方法才能使用它,而在他之前的就不能用?
还有一个问题:
File tmp;
while(!list.isempty()){
tmp = (File)list.removeFirst
.....
}
这段语句在while语句外面先是定义了一个对象天麻片,但是却在while语句中才分配空间,那是不是可以理解为这个tmp是一个list列表里第一个元素的引用,要对这第一元素操作的话,是不是直接操作tmp就可以了?
在下先谢谢各位了
解决方案
main的开头是什么意思,是main方法的上一行,还是main方法内,如果是上一行,那么如果是static的,那么可以算作“全局变量”,否则是成员变量。写在main里面,无论最上面还是哪里,都是成员变量。
解决方案二:
java和C++不同,成员变量不需要先申明后使用,所以你可以在作用域可见的范围内,不管前面后面都可以访问。
不过作为局部变量,必须先定义后使用
i = 1;
int i;
这是不行的。
解决方案三:
关于变量的作用域问题
Shell中变量的作用域问题
关于栈和堆中变量的作用域问题
解决方案四:
定义在类中,属于全局变量,定义在方法中属于局部变量。全局变量 在整个类中都可以调用,而局部变量只能在方法里调用,如果想要调用,需要传出去。
解决方案五:
成员变量和局部变量的区别?
A:在类中的位置不同
成员变量:在类中方法外
局部变量:在方法定义中或者方法声明上
B:在内存中的位置不同
成员变量:在堆内存
局部变量:在栈内存
等等在我博文中有详细解释
我在写java零基础入门的博客文章,每一篇都有代码案例进行理解,有的还配上内存图解释。有关于成员变量和全局变量的问题详细讲解,而且后后边也会有专题的形式讲解这个问题的。您可以关注看一下,一起讨论。当然其他看到的同行也可以进行参考讨论,我的博客地址:http://blog.csdn.net/qq_32059827
解决方案六:
tmp 只是list底层元素的一个引用,操作tmp不会改变底层元素的。你那代码只是取出了list 的首元素
时间: 2024-12-22 15:12:20