黑马程序员技术交流社区
标题:
关于static小疑问
[打印本页]
作者:
zhangfengg
时间:
2016-9-19 00:20
标题:
关于static小疑问
static为什么不能修饰局部变量啊,书上只说会报错,还是不太懂,请大神 赐教
作者:
钓鱼王
时间:
2016-9-19 11:18
钓鱼王前来答题。
希望有帮助。
static是说明这个东西是属于整个类的
而局部变量的作用域只能在他所属的{}之内。不可能是属于类或对象的。
所以矛盾,故static不能修饰局部变量
public class Test {
public static int a=1;//成员变量,允许
public static void main(String[] args) {
static int b=1;//错误
}
}
作者:
chenyihan
时间:
2016-9-19 12:17
static修饰的是随着类的加载而加载,局部变量在方法中,存在于栈内存,随着对象的调用而调用,所以不能修饰
作者:
小东先森
时间:
2016-9-19 12:39
static修饰的变量具有两个特点
第一 随着类的加载而加载
第二 变量是隶属于类的
Java是面向对象的语言,方法运行结束后会有方法弹栈的行为
你如果在方法中定义一个静态的局部变量,它不可能同时属于类,又随着方法改变而改变,矛盾。
所以static在Java语言中是不能定义局部变量的。
但在c/c++中 是面向过程的语言,是可以定义局部静态变量的。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2