Static和递归

一、static:

                                       是我们main函数的一种修饰符
                               静态修饰符:标识成员可以被类直接调用       (类名.属性名      类名.方法名)

    static五种修饰
    1:静态成员变量
    2:静态方法变量
    3:静态代码块
    4:静态内部类
    5:静态导包

 1 public class StatinTest {
 2     static int number=10;//静态成员变量
 3     public static void main(String[] args) {
 4     }
 5     public static void sayHello(String name){//静态函数
 6         System.out.println(name+"您好");
 7     }    
 8     static{
 9         System.out.println("这是静态代码....");//静态代码块
10     }
11     static class innerClass{//静态内部类
12 }

     static与非static之间的重要区别:

  • 区别1:   

                      static修饰的成员是随着类的加载而加载(优先)

                      非static成员是随着对象的创建而加载

  • 区别2:    

                         静态方法|静态代码块只能调用静态成员,非静态成员是不能直接调用的,创建对象(不能使用this关键字)

                         非静态方法可以直接调用非静态成员,也可以调用静态成员.类的对象进行调用静态成员

  • 区别3:    

                  静态成员对于多个对象而言是共享的

                 非静态成员对于多个对象是彼此独立的

二、递归方法解决斐波那契数列

          递归函数:

                          在一定程度上可以为循环
                          自己调用自己本身的方法被称为递归函数

                        ***最重要的就是递归何时结束!

       public static void main(String[] args) {
            System.out.println("请输入项数");
            Scanner inScanner=new Scanner(System.in);
            int n=inScanner.nextInt();
            System.out.println(f(n));
        }
            public static int f(int n){
                    if (n == 1 || n == 2) {
                        return 1;
                        } else {
                        return f(n-1)+f(n-2);
                        }            
    }      
}
原文地址:https://www.cnblogs.com/hong-bo/p/10950470.html