static修饰符与递归函数

 

一、static 静态修饰符

  1、是我们main函数的一种修饰符,同时标示着被static修饰的成员可以被类直接调用,如:(类型 . 属性  |  类名 . 方法)

  2、static 修饰符主要应用在5个地方:

   * 静态成员变量

   * 静态成员方法

   * 静态代码块

   * 静态内部类

   * 静态导包

  3、static和非static的区别

    区别一:static修饰的成员是随着类的加载而加载(优先),而非static成员是随着对象的创建而加载

    区别二:静态方法|静态代码块只能调用静态成员,非静态成员是不能直接调用的,创建对象(不能使用this关键字)
                  非静态方法可以直接调用非静态成员,也可以调用静态成员.类的对象进行调用静态成员

    区别三:静态成员对于多个对象而言是共享的
                 非静态成员对于多个对象是彼此独立的

二、类的封装

  1、把类的公有属性定义在内部的过程被称之为封装:包括属性与方法

  2、为了保证字段的隐私性: 我们选择使用private修饰符修饰变量

  3、声明对应的get/set方法对变量的读写操作提供支持
     后续学习的框架中只认get/set方法 MyEclipse中生成get set的快捷键 alt+shift+s  点击R键  选择对应的字段 生成get/set

三、不定长参数

  1、格式为:类型...参数名  (如:String ... name )

  2、不定长参数必须写在参数列表的末尾,且不定长参数只能有一个

  3、不定长参数实质上是将参数转化为相应长度的数组;

 1 public class lianxi {
 2     public static void main(String[] args) {
 3         print(1,2,3,4,5,6);  //调用print方法,参数为6个
 4         System.out.println();
 5         print(1,2,3,4,5,6,7,8,9);//调用print方法,参数为9个
 6     }
 7     
 8     public static void print(int...a){    //参数为不定长参数
 9         for(int i:a){
10             System.out.print(i+" ");
11         }
12     }
13 }

四、方法重载

  1、保证同名方法的参数不同: 个数 类型 顺序
  2、和访问修饰符 返回值类型无关

五、递归函数

  1、特征为:自己调用自己

  2、重点在于:判断递归何时结束

  

 递归例题 

1 public class Feibonaqie {
2     //输出的值为菲波那切数列的第n项的值
3     static int feibonaqie(int n){
4         if(n==1) return 0;
5         if(n==2) return 1;
6         return feibonaqie(n-1)+feibonaqie(n-2);
7     }
 1 public class Test01 {
 2     public static void main(String[] args) {
 3         Scanner input=new Scanner(System.in);
 4         System.out.println("请输入您要输出菲波那切数列的前多少项:");
 5         int n=input.nextInt();
 6         //运用递归
 7         System.out.print("菲波那切数列的前"+n+"项为:");
 8         for(int i=1;i<=n;i++){
 9         System.out.print(Feibonaqie.feibonaqie(i)+" ");
10         }
11     }

以下为本例题的递归示意图

 

posted @ 2019-05-29 18:58  道友请留步~  阅读(531)  评论(0编辑  收藏  举报