1、方法的重载Overload
实现重载的3个条件:
同一个类中的多个方法
方法名相同
参数列表不同 | 方法签名不同(参数个数不同、参数类型不同、不同类型的参数顺序不同)
方法签名:方法的唯一标识 方法名+参数列表
方法重载调用:只根据实参决定
tips:
方法的重载与修饰符、返回值类型、参数名均无关
public static void getSum(int x,int y){}
//参数个数不同,构成方法重载
public static void getSum(int x){}
//参数类型不同,构成方法重载
public static void getSum(int x,double y){}
//不同类型参数,参数顺序不同构成方法重载
public static void getSum(double x,int y){}
2、方法递归
方法内部自己调用自己
递归分类:
直接递归:A方法中调用A方法
间接递归:A方法中调用B方法,B方法中调用方法
递归的实现满足的条件:
递归前进段:从第一次调用方法,到临界条件之间,不停的自己调用自己的过程。
递归后退段 : 达到临界条件之后,将结果返回给上一层的过程。
临界条件 : 停止自己调用自己的条件。
递归的优点 :恰当位置使用简单,灵活。
递归的缺点 :容易造成递归死循环,造成栈内存溢出的问题。
public static int recursion(int i){
//过滤条件
if(i<=0){
return -1;
}
//临界条件
if(i==1){
return 1;
}
return i*recursion(i-1);
}
2、数组
变量 : 存储单个数据
数组 :存储多个数据
在内存中是一段连续的内存空间,线性序列,相同数据类型的有序集合
数组特点:
引用数据类型 [](基本数据类型的数据为对应类型数据值 ,引用数据类型的数据为对象数据 )
定长,长度一旦确定不可改变
存储的多个数据要求类型相同
有序的,索引,根据根据索引区分数组中的每一个空间
索引 :
是数组连续内存空间中每一个空间得到唯一标识
根据索引操作数组中的数据 数组名[索引]
int[] a = new int[]{1,2,3,4,5}
a[2] = 0//根据数组名[索引]操作下标为2的索引的值
数组 索引从0开始每次+1
最后一个空间的索引为 : 数组名.length-1
长度 : 数组名.length
System.out.println(a.length);
数组的声明 :
数据类型[] 数组名; --> 推荐
数据类型 数组名[];
数据类型 []数组名;
int[] b;//声明了一个int类型名为b的数组
动态初始化 : 先创建数组后赋值
数据类型[] 数组名 = new 数据类型[长度];
数据类型 : 可以为任意数据类型(基本|引用)
长度 : 整数 0~n
int[] c = new int[5];//创建了一个长度为5的int型数组
//赋值
c[0] = 1;
c[1] = 2;
静态初始化 : 创建数组的同时赋值
数据类型[] 数组名 = new 数据类型[]{数据1,数据2,数据3....};
数据类型[] 数组名 = {数据1,数据2,数据3....};
int[] c = new int[5]{1,2,3,4,5};//创建了一个长度为5的int型数组,并赋值为:1,2,3,4,5
默认值 : 数组创建没有赋值,存在默认值
整数型 : 0
小数型 : 0.0
布尔型 : false
字符型 : 空字符