学习内容:
1.数组
(1)一维数组:
声明方式:
int[] a = new int[3]; a[0] = 1; a[1] = 2; a[2] = 3; int[] b = {1,2,3,4}; int[] c = new int[]{1,2,3};
遍历数组:
class Test { int[] a = {1,2,3}; public static void main(String[] args) { for(int i = 0;i<a.length;i++){ System.out.println(a[i]);
}
for(int each : a){ //增强型for循环,类似js的for in
System.out.println(each);
}
}
}
(2)二维数组:
声明方式:
int[][] a = new int[2][2]; int[][] b = new int[2][]; int[][] c = { {1,2,3}, {4,5}, {7,8,9} };
遍历数组:
class Test { int[][] a = { {5,8,11}, {1,23}, {8,5,3} }; public static void main(String[] args) { for(int i = 0;i<a.length;i++){ for(int j = 0;j<a[i].length;j++){ System.out.println(a[i][j]); } } } }
求数组中数字的最大值:
class Test { public static void main(String[] args) { int[] a = {1,2,3,4}; int max = a[0]; for(int i = 1;i<a.length;i++){ if(a[i]>max){ max = a[i]; } } System.out.println("最大值:"+max); } }
(3)数组异常:
class Test { int[][] a = { {1,2,3}, {4,5}, {7,8,9} }; int[] b = {1,2,3}; public static void main(String[] args) { System.out.println(f[1][2]); //数组下标越界异常 b = null; System.out.println(b[0]); //空指针异常 } }
2.传参:
(1)数值传参
class Test { public static int Change(int c,int b){ c=0; //数值传递 b=0; } public static void main(String[] args) { int a = 2; int b = 3; System.out.println(a+","+b); Change(a,b); System.out.println(a+","+b); //数值未改变,因为a,b只是作为形参被传入方法内, //c=0,b=0只是把传进去的参数覆写为0而已,原始数据不会改变 } }
(2)引用传参
class Test { public static int Change(int[] a){ a[0]=0; //引用传递 } public static void main(String[] args) { int[] t1={1,2,3}; System.out.println(t1[0]+","+t1[1]); Change(t1); System.out.println(t1[0]+","+t1[1]); //数值改变,因为t1这个数组被当做参数传入了方法中,所以方法中改变的就是t1这个数组本身的数据。 } }
3.方法重载
方法名重复,形参的数据类型不同、个数不同以及传入顺序不同(三个条件满足一个即可视为方法重载),
另外方法重载和返回值有无、返回值数据类型无关。
JAVA会根据传入的形参的数据类型、个数以及传入顺序来选择调用的方法。
public static void test(int a,intb){ System.out.print(a+b); } public static void test(double a){ System.out.print(a); } public static void test(double a,int b){ System.out.print(a+b); } public static void test(int a,double b){ System.out.print(a+b); }