一、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); } }
}