数组与方法
数组
数组的概述
数组是指一组数据的集合,数组中的每个数据被称作元素。在数组中可以存放任意类型的元素,但同一个数组里存放的元素类型必须一致。
数组的定义
格式:
数据类型[] 数组名 = new 数据类型[元素个数或数组长度];
举例:int[] x = new int[100];
要点说明
- 数据类型: 数组中存储元素的数据类型
- [] 表示数组的意思
- 变量名 自定义标识符
- new 创建容器关键字
- 元素个数,就是数组中,可以存储多少个数据 (恒定, 定长)
- 数组是一个容器: 存储到数组中的每个元素,都有自己的自动编号(索引(index), 下标, 角标)
- 访问数组存储的元素,必须依赖于索引, 数组名[索引]
- 数组中最小的索引是0,最大的索引是“数组的长度-1”。
在程序中可以通过“数组名.length”的方式来获得数组的长度,即元素的个数。
数组的遍历:
int[] arr = new int[10];
for(int i=0;i<arr.length;i++){
arr[i] = 100;
}
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
for(int i=arr.length-1;i>=0;i–){
System.out.println(arr[i]);
}
数组的复制与排序:
数组复制源码解释
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
参数解释:
Object src : 原数组
int srcPos : 从元数据的起始位置开始
Object dest : 目标数组
int destPos : 目标数组的开始起始位置
int length : 要copy的数组的长度
使用:
//复制
System.arraycopy(a,1,a1,0,4);
/第二个自变量指定要建立的新数组长度,如果新数组的长度超过原数组的长度,则保留数组默认值
int[] a1 = Arrays.copyOf(a,6);
//扩容
a = Arrays.copyOf(a,a.length+1);
// 数组的排序
8.1)Arrays.sort(arr); //升序
多维数组
二维数组的定义有很多方式,接下来针对几种常见的方式进行详细地讲解,具体如下:
第一种方式: int[][] arr = new int [3][4];
第二种方式: int[][] arr = new int[3][];
第三种方式: int[][] arr = {{1,2},{3,4,5,6},{7,8,9}};
对二维数组中元素的访问也是通过角标的方式,如需访问二维数组中第一个元素数组的第二个元素,具体代码如下:
arr[0][1];
方法
在java中,方法就是用来完成解决某件事情或实现某个功能的办法。
方法的语法格式
在Java中,声明一个方法的具体语法格式如下:
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2,......){
执行语句
………
return 返回值;
}
对于上面的语法格式中具体说明如下:
- 修饰符:方法的修饰符比较多,有对访问权限进行限定的,有静态修饰符static,还有最终修饰符final等,这些修饰符在后面的学习过程中会逐步介绍
- 返回值类型:用于限定方法返回值的数据类型
- 参数类型:用于限定调用方法时传入参数的数据类型
- 参数名:是一个变量,用于接收调用方法时传入的数据
- return关键字:用于结束方法以及返回方法指定类型的值
- 返回值:被return语句返回的值,该值会返回给调用者
方法使用的注意事项
- 方法不调用,自己不执行
- 方法中不能定义方法, 但是,方法中可以调用方法
- 方法定义的位置在类中,其他方法的外面
- 方法中的“参数类型 参数名1,参数类型 参数名2”被称作参数列表,它用于描述方法在被调用时需要接收的参数,如果方法不需要接收任何参数,则参数列表为空,即()内不写任何内容。
- 如果方法没有明确的返回值类型,使用’空’类型, void表示
- void只能在方法返回值类型位置使用,不能作为普通的数据类型使用
- 如果方法返回值类型为void类型,可以省略 return ;
方法的重载
Java允许在一个类中定义多个名称相同的方法,但是参数的类型或个数必须不同,这就是方法的重载。
public static int add(int x,int y) {逻辑} //两个整数加法
public static int add(int x,int y,int z) {逻辑} //三个整数加法
重载方法参数必须不同:
- 参数个数不同,如method(int x)与method(int x,int y)不同
- 参数类型不同,如method(int x)与method(double x)不同
- 参数顺序不同,如method(int x,double y)与method(double x,int y)不同
参数传递
定义方法时,参数列表中的变量,我们称为形式参数
调用方法时,传入给方法的数值,我们称为实际参数