今天敲代码的时候遇到了这个问题,简单的斐波那契
public class feibonaqie{
public static void main(String [] args)
{
int n=10;
feibonaqie a=new feibonaqie();//此方法的精髓
System.out.println("第"+n+"个月的数目为"+a.num(n));
}
int num(int n)
{if(n==1||n==2)
return 1;
else
return num(n-1)+num(n-2);
}
}
第一次我写成这样
如下
public class feibonaqie{
public static void main(String [] args)
{
int n=10;
//feibonaqie a=new feibonaqie();
System.out.println("第"+n+"个月的数目为"+num(n));
}
int num(int n)
{if(n==1||n==2)
return 1;
else
return num(n-1)+num(n-2);
}
}
显示
Cannot make a static reference to the non-static method get() from the type
查阅资料才知道
- java中不能将方法体内的局部变量声明为static
- main()函数是静态的,没有返回值,形参为数组。
- 非静态成员的可以随便调用静态成员
第一种是最开始的那种
第二种
public class feibonaqie{
public static void main(String [] args)
{
int n=10;
System.out.println("第"+n+"个月的数目为"+num(n));
}
static int num(int n)//加上static
{if(n==1||n==2)
return 1;
else
return num(n-1)+num(n-2);
}
}