方法的重载
在同一个类中,方法名相同, 参数列表不同 与修饰符返回值类型无关 称为方法的重载
参数列表不同 : 个数不同, 顺序不同,数据类型不同
好处: 解决了起名字和记名字的问题
// 求两个整数的和
public static int getSum(int num1, int num2) {
return num1 + num2;
}
// 求三个整数的和
public static int getSum(int num1, int num2, int num3) {
return num1 + num2 + num3;
}
// 求两个小数的和
public static double getSum(double num1, double num2) {
return num1 + num2;
}
/* public static double getSum(double num2, double num1) {
return num1 + num2;
}*/
public static double getSum(int num1, double num2) {
return num1 + num2;
}
public static double getSum(double num1, int num2) {
return num1 + num2;
}
数组的定义
格式1 : 数据类型[] 数组名; (常用)
格式2 : 数据类型 数组名[]; (不常用)
// 整数
byte[] b1;
short[] s1;
int[] i1;
long[] l1;
// 小数
float[] f1;
double[] d1;
// 布尔
boolean[] boo1;
// 字符
char[] ch1;
// 引用数据类型 字符串
String[] str1;
数组的初始化
//java中的 数组必须先赋值 才能被使用
//动态初始化: 只指定数组的长度,不指定数组具体的元素值
//格式: 数据类型[] 数组名 = new 数据类型[数组的长度];
int[] arr = new int[5];
// 静态初始化: 当我们定义数组的时候,直接指定数组中存储具体元素值
// 格式: 数据类型[] 数组名 = new 数据类型[]{元素1,元素2,...元素n};
// 静态初始化后面的[] 中不能书写数组的长度
// 静态初始化简写形式: 数据类型[] 数名 = {元素1,元素2,...元素n}; (常用)
int[] arr2 = new int[]{1, 5, 7, 8, 9, 10};
double[] d2 = {3.14, 2.33, 5.68};
访问数组元素
public class Demo04_访问数组元素 { public static void main(String[] args) { // 静态初始化一个数组 int[] arr = {3,6,9,11,15,88}; // 索引 index : 数组的索引 从左开始也就是 从数字0开始,也是到数组的长度-1 // 通过一个属性 .length进行获取数组的长度 数组名.length // 通过索引 访问数组中的元素 // 1, 赋值 数组名[索引] = 新值; arr[0] = 1; // 2, 取值 数组名[索引]; System.out.println(arr[3]); // 11 System.out.println(arr[0]); // 1 // 如果我们动态初始化一个数组,不赋值 ,可以取值吗? int[] arr1 = new int[5]; // 不赋值 直接取值 System.out.println(arr1[0]); // 0 /* * 我们的数组 如果通过动态初始化进行定义,那么我们的jvm会自动给我们的数组赋默认值 * 整数 : 0 * 小数: 0.0 * 布尔: false * 字符: ' ' '\u0000' * 引用数据类型(String): null * */ float[] f1 = new float[5]; System.out.println(f1[0]); // 0.0 boolean[] boo1 = new boolean[5]; System.out.println(boo1[0]); // false char[] ch1 = new char[5]; System.out.println(ch1[0]); // '\u0000' String[] str = new String[5]; System.out.println(str[0]); // null } }
遍历数组
public class Demo05_遍历数组 {
public static void main(String[] args) {
// 遍历数组: 将数组中的每一个元素获取到
// 静态初始化一个数组:
String[] names = {"杨浩宇","李威峰","牛镒蒴","郭原硕","那仁满都呼"};
for (int index = 0; index < names.length ; index++) {
// 数组名[索引] 取值
System.out.println(names[index]);
}
}
}
数组索引越界异常
当我们在访问数组元素的时候, 访问了不存在的索引
// ArrayIndexOutOfBoundsException
// 数组 索引 超出 边界 异常
// 发现了问题 要避免
// 以后我们再操作数组的时候,一定要判断一下 当前要操作的数组的索引是否在允许范围以内
// 数组的长度 -1 >= 索引 >= 0
空指针异常
//NullPointerException 空指针异常
// 我们通过数组名[索引] 访问数组中的元素的时候,将数组名等于了null
// 意味着 我们的地址 变成了 空
// 避免空指针异常
// 每次操作数组元素的时候,判断当前数组地址是否为null,如果为null,不让其操作数组
// 不为空,操作数组