方法的重载
在同一个类中,方法名相同, 参数列表不同 与修饰符返回值类型无关 称为方法的重载
参数列表不同 : 个数不同, 顺序不同,数据类型不同
好处: 解决了起名字和记名字的问题
// 求两个整数的和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]); // 11System.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.0boolean[] boo1 = new boolean[5];System.out.println(boo1[0]); // falsechar[] 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,不让其操作数组
// 不为空,操作数组