Java:这样为什么会报错呢?main函数是个静态方法,不能在其中声明静态变量么?

classTest{publicstaticvoidmain(String[]a){staticfinalbyteCONN_FLAG=18;//报错System.out.... class Test {
public static void main(String[] a){
static final byte CONN_FLAG = 18; //报错
System.out.println(CONN_FLAG);
}
}
展开
 我来答
匿名用户
2014-01-12
展开全部
只有类才存在静态的变量 方法只能对静态变量的操作 不能在方法内试图定义静态变量,否则的话会抛出编译错误。静态变量的本意是为了让所有的对象共享这个变量,如果在方法里面定义静态变量的话就存在逻辑错误了,也达不到你想要目的. 因为在方法中定义静态变量根本没有他的任何意义. 任何对象都有自己的方法,即使是静态方法,方法内的变量也是在方法调用时候才开始分配内存,所以想给成静态的在逻辑上存在问题
山之令郎
2014-01-12
知道答主
回答量:6
采纳率:0%
帮助的人:8104
展开全部
static类型变量属于在类加载时进行定义初始化的,而main函数中的相关变量是在运行时才会声明,在main函数中可以引用static类型变量,但不可在里面进行声明。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ma9511267
2014-01-12 · 超过18用户采纳过TA的回答
知道答主
回答量:54
采纳率:0%
帮助的人:35.1万
展开全部
静态变量不能写到方法里面的,正确的写法
class Test {
static final byte CONN_FLAG = 18;
public static void main(String[] a){ System.out.println(CONN_FLAG); }}
追问
静态变量和方法都是在类加载的时候就存在了,如果是实例变量不能写在main函数中我还能理解,静态变量也不能就不太好理解了
追答
因为写在方法里的变量是内部变量,是不能被其它方法用的,只有调用方法的时候那个变量才会临时加载,所以方法内创建的变量不能是静态的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式