A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xiaodong 中级黑马   /  2015-6-8 23:26  /  401 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

看了刘意老师的递归视频,看到里面的代码中递归方法的修饰符都是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);
                }
        }
}

3 个回复

倒序浏览
用 static 修饰 是因为,main 方法是 static 的所以 它调用的方法也必须 是 static的
回复 使用道具 举报
1、被static修饰的方法或者变量,在类加载的时候,就被加载,生命周期和类一样;
回复 使用道具 举报
1、被static修饰的方法或者变量,在类加载的时候,就被加载,生命周期和类一样;
2、被static修饰的变量为共享变量
3、被static修饰的方法,可以直接通过类名.方法名()进行调用;
在此例子中:如果要调用fun()。有两种形式,A:fun();B:DiGuiDemo3.fun();
4、如果不定义成static的方法,那么要想调用fun();则需要建立对象,通过对象.fun()来调用
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马