·测试java中return
1、有返回值类型的方法:1)结束方法 2)带出返回值
2、没有返回值类型的方法: 1)结束方法
3、不可达语句出现的情况:
1)一定会执行的return后出现的语句
2)死循环后出现的语句
3)break后面出现的语句
4)continue后面出现的语句
4、方法的兼容类型:
1.形参的数据类型>=实参的数据类型
2.返回值: return后面数据的类型<=返回值类型<=接受数据类型
·打印等腰三角形
//传递一个大写字母,输出行数,根据这个字母输出下列形式的图形
/* 行数i 等腰一行中最多有几个字符 i 占位倒三角 n m=5
----A 1 1 i 4 = m-i
---B B 2 2 i 3 = m-i
--C C C 3 3 i 2
-D D D D 4 4 i
E E E E E 5 5 i
*/
//返回值:不需要 参数:2个参数 int m行数 char ch 字符
public static void print(int m,char ch){
//外层循环控制行 i
for(int i=1;i<=m;i++){
//占位倒三角 n=m-i;
for(int n=1;n<=m-i;n++){
System.out.print(" ");
}
//等腰三角形
for(int j=1;j<=i;j++){
System.out.print(ch+" ");
}
System.out.println(); //换行
//ch=(char)(ch+1);
//ch++;
ch+=1;
}
}
·方法的重载: 同一个类中,多个方法方法名相同,参数列表不同(方法签名:方法名+参数列表–>一个方法唯一的表示) -->这些方法构成方法的重载
1、方法重载:
1).同一个类中
2).多个方法方法名相同
3).参数列表不同
参数数据类型不同
个数不同
顺序不同(不同类型的参数)
2、重载方法的调用:
根据传递的实参决定调用的是重载方法中的哪一个
3、面向对象的三大特性: 封装 继承 多态
方法是一个类中封装的一种体现
方法的重载是一个类中多态的一种体现
4、方法重载的注意事项:
1.方法的重载和方法有无返回值无关
2.方法的重载和返回值类型无关
3.方法的重载和修饰符无关
4.方法的重载和参数的名字无关
方法重载只和方法签名相关
·方法的递归(了解)
方法自己调用自己
临界条件:递归头 停止自己调用自己的条件
递归前进段:没有满足临界条件之前,自己调用自己
递归后退段:当满足临界条件,将结果返回给上一层
递归头: 临界条件
递归体: 自己调用自己
·数组:
相同数据类型的有序集合
变量:存储单个数据
数组:存储多个数据
1、数组的特点:
1.数组是一个引用数据类型
2.数组是一个容器,长度一旦确定不能改变
3.数组中数据类型相同
4.数组中数据是有序的
2、数组的声明方式:
1. 数据类型[] 数组名;
数据类型: 当前数组中所有数据的数据类型 基本数据类型|引用数据类型
2. 数据类型 数组名[]; —不推荐使用
3、初始化:
动态初始化:
数据类型[] 数组名=new 数据类型[长度]; 创建指定长度的数组
数组中的数据存在默认值:
byte/short/int/long --> 0
double/float --> 0.0
char --> ’ ’
boolean --> false
引用数据类型 --> null
静态初始化:
数据类型[] 数组名=new 数据类型[]{值1,值2,值3…}; 由值的个数来决定创建的数组的长度
数据类型[] 数组名={值1,值2,值3…}; --推荐
注意:简略形式不可以给数组重新赋值
4、操作数组中的数据: 0~ 数组名.length-1
索引|下标 从0开始
数组名[索引]
在数组中最后一个数据的索引: 数组名.length-1
5、数组的长度:
数组名.length
6、数组的遍历:
1.普通for循环
2.增强for循环 for…each
for(数据类型 变量名i:容器名|数组名){
i就是数组中的每一个数据,不是索引 从前向后遍历
}
只能获取值不能赋值
·最值:获取数组中的最大值和最小值
//返回值:最值 参数:int[]
public static int[] getMaxMin(int[] arr){
//假设数组中的第一个数据为数组中的最大值|最小值
int max=arr[0];
int min=arr[0];
//遍历获取数组中的每一个值进行比较
for(int i:arr){
if(i>max){
max=i;
}
if(i<min){
min=i;
}
}
return new int[]{max,min};
}
·逆序:倒叙输出数组元素
//返回值:不需要 参数:一个数组int[]
public static void print(int[] arr){
for(int i=arr.length-1;i>=0;i--){
System.out.println(arr[i]);
}
}
·二维数组(了解)
数组中放数组就是二维数组
1、声明:
数据类型[][] 数组名; --推荐
数据类型 数组名[][];
数据类型[] 数组名[];
2、初始化:
数据类型[][] 数组名=new 数据类型[一维数组的长度][二维数组的长度];
每一个第二维都是一样长度
数据类型[][] 数组名=new 数据类型[一维数组的长度][];
每一个第一维的空间中的数据都是一个小数组,但是每一个第二维数组都没有创建