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