一、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 }
以下为本例题的递归示意图