public class test {
public static void main(String []args){
public static final int a=10;
System.out.println("the result is:"+a);
}
}
上面这个Java小程序,有错误。虽然我可以找到解决办法,但是我一直没有想明白。为什么在main函数不能用修饰符public和static,而只能用final。希望大家能很彻底的解决修饰符的问题,因为我看了很多的java书,都找不到很详细的解释,都是一笔带过的解释修饰符,而没有很明确的说明修饰符所要注意的地方和各种用法规则。希望大家多多的探讨。希望大家都能提出自己宝贵的看法,在此先谢谢大家啦。

解决方案 »

  1.   

    初学者的理解
    方法里的变量根本就不需要用到public,static修饰
    1.外界无法用到此变量
    2.方法调用完后,变量也会销毁,static会给变量在堆区分配空间,这样会浪费资源
      

  2.   

    方法里面的变量不能用 
    public 和 static
      

  3.   

    你那个a只是个变量,根本就不是类的属性。
    所以不能用public和static,
      

  4.   

    方法体内的定义的变量,只能在方法体内调用。而public是指其可以被其它类访问。static是指可以直接用类名调用。显然方法体内的变量不管怎样修饰,它都做不到这一点。
      

  5.   

    public 等不是给变量用的。
      

  6.   

    将方法体内的变量修饰为pulic和static,这样任何会造成此变量对与任何一个外部类都可以调用,而java本身定义java方法体内的变量只有自己可以调用,这样就矛盾了,所以方法体内的变量不能被修饰pulic和static的