黑马程序员技术交流社区

标题: 关于递归修饰符的问题 [打印本页]

作者: xiaodong    时间: 2015-6-8 23:26
标题: 关于递归修饰符的问题
看了刘意老师的递归视频,看到里面的代码中递归方法的修饰符都是static,递归是一定要用static修饰吗?谢谢大神的解答!
/*古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第二十个月的兔子对数为多少? */
代码如下:
public class DiGuiDemo3 {
        public static void main(String[] args) {
                System.out.println(fun(20));
        }
        public static int fun(int n) {
                if (n == 1 || n == 2) {
                        return 1;
                } else {
                        return fun(n - 1) + fun(n - 2);
                }
        }
}


作者: 找寻小龙猫    时间: 2015-6-8 23:47
用 static 修饰 是因为,main 方法是 static 的所以 它调用的方法也必须 是 static的
作者: 307323665    时间: 2015-6-8 23:53
1、被static修饰的方法或者变量,在类加载的时候,就被加载,生命周期和类一样;
作者: 307323665    时间: 2015-6-9 00:00
1、被static修饰的方法或者变量,在类加载的时候,就被加载,生命周期和类一样;
2、被static修饰的变量为共享变量
3、被static修饰的方法,可以直接通过类名.方法名()进行调用;
在此例子中:如果要调用fun()。有两种形式,A:fun();B:DiGuiDemo3.fun();
4、如果不定义成static的方法,那么要想调用fun();则需要建立对象,通过对象.fun()来调用




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2