为什么静态函数在java中没有任何静态局部变量

时间:2015-06-15 05:38:24

标签: java

以下Java程序在编译时失败,并显示错误“不允许静态局部变量”

class Myclass {

   public static void main(String args[]) { 

    System.out.println(Myfun());
   }

   static int Myfun()
   {
     static int var= 10;  

     return var += 1;
   }
}

2 个答案:

答案 0 :(得分:2)

如果你想要一个静态变量(其值将在对静态方法的连续调用中重用),请在方法之外声明它:

static int var= 10; 
static int Myfun()
{
    return var += 1;
}

局部变量不能是静态的,因为局部变量仅存在于方法的单次执行范围内。

答案 1 :(得分:0)

在静态块中,你声明的内容变为静态。

在你的情况下,Myfun()是静态的,所以如果你想把var变为静态,那么只需要做int var = 10

class Myclass {

   public static void main(String args[]) { 

    System.out.println(Myfun());
   }

   static int Myfun()
   {
     int var= 10;  

     return var += 1;
   }
}