private static int Fibonoci(int n) {
static int first=0;
static int second=1;
static int sum;
if(n>0)
我收到错误“非法修饰符”,如果我删除静态关键字没有错误,我需要这些变量是静态的
答案 0 :(得分:12)
您不能在方法中将varibale声明为static。
在内部方法中,所有变量都是局部变量,在这种方法之外没有存在,这就是为什么它们不能是静态的。
static int first=0;
static int second=1;
static int sum;
private static int Fibonoci(int n) {
//do somthing
}
您正在尝试为斐波那契系列编写代码,因为您不需要静态变量,因为这里有一些链接描述了那个
http://crunchify.com/write-java-program-to-print-fibonacci-series-upto-n-number/
答案 1 :(得分:3)
static
。
答案 2 :(得分:1)
Local variables
无法声明为静态。换句话说,Static
不适用于local variables
。
我没有看到declaring
他们static
使用{。}}。
静态字段(有时称为类变量)在初始化类时实现(第12.4节)。
答案 3 :(得分:1)
您不能在方法中声明静态变量,static
表示它是类的变量/方法,它属于整个类,但不属于某个特定对象之一。
这意味着static
关键字只能在“类范围”中使用,即它在方法内部没有任何意义。
我不知道你想要实现什么,但是如果你真的希望这些变量是静态的,那么你可以将它们声明为你班级中的静态字段。
答案 4 :(得分:1)
根本原因:静态变量在类加载时间分配内存,因为它们是类的一部分,而不是它的对象。
现在,如果静态变量位于方法中,则该变量位于方法的范围内,JVM将无法为其分配内存。
答案 5 :(得分:0)
这个varibles叫做Local Variables,它们在方法scop或构造函数里面,它们不能是实例或类变量。
private static int COUNT;// Class Variable
private static int Fibonoci(int n) {
int a =3 ; // local variable
}
我需要那些变量是静态的,okey,你为什么需要这个?因为用于特殊purpuse的静态变量,你可以创建静态字段,就像我上面的代码一样。
答案 6 :(得分:0)
您必须将静态变量定义为类中的成员。在方法中定义的变量是局部变量,它们的生命周期在方法结束时结束。局部变量是特定于调用的,成员变量是特定于对象的,而静态变量是特定于类的变量。
答案 7 :(得分:0)
您需要在函数外部声明静态变量:
static int first=0;
static int second=1;
static int sum;
private static int Fibonoci(int n) {
if(n>0)
答案 8 :(得分:0)
您不能在方法中将变量声明为静态。换句话说,我们可以这样说, 局部变量不能声明为static。