方法
5.1定义:方法就是完成特定功能的代码块
在很多语言里都有函数的定义
函数在Java中被称为方法
5.2格式:
修饰符返回值类型 方法名(参数类型 参数名1,参数类型 参数名2) {
函数体;
return 返回值;
}
5.2.1详细解释:
修饰符:public static ....
返回值类型:功能结果的数据类型
方法名:符合命名规则,方便调用
参数:
实际参数:实际参与运算
形式参数:方法定义上,用于接收实际参数
参数类型:参数的数据类型
参数名:变量名
方法体语句:完成功能的代码
return:结束方法
返回值:功能的结果,由return带给调用者
5.2.2方法需要明确的:
a.返回值类型:
结果的数据类型
b.参数列表:
传递几个参数,什么数据类型
5.2.3方法的执行特点:
a.不调用,不执行
b.如何调用?(有明确返回值的调用)
(1)单独调用,意义不大
e.g sum(a,b)
(2)输出调用,效果不佳,调用还有可能进一步操作
e.g System.out.println(sum(a,b));
(3)赋值调用
e.g int result = sum(a,b);
5.2.4方法重载
方法功能相同,参数列表不同。为了见名知意,java允许相同的名字
方法重载:在同一个类里,允许存在一个以上的同名方法(参数个数或参数类型不同即可)
方法重载特点:
a.与返回值类型无关,只看方法名和参数列表
b.JVM根据参数列表的不同来判定是哪一个同名方法
数组
6.1数组概念
数组是存储同一种数据类型多个元素的集合(相当于一个容器)。
数组既可以存储基本数据类型,也可以存储引用数据类型。
6.2数组的定义格式
a.数组类型[] 数组名;(优先第一种)
b.数据类型 数组名[];
e.g int[] a; //定义一个int类型的数组a变量
int a[]; //定义一个int类型的a数组变量
6.3初始化数组
6.3.1数组初始化:
为数组中的数组元素分配内存空间,并为每个数组元素赋值
6.3.2数组的初始化方式
a.动态初始化:
初始化时只指定数组长度,由系统为数组分配初始值。
格式:
数据类型[] 数组名 = new 数据类型[数组长度];
e.g int[] arr = new int[3];
//new:为数组分配内存空间
b.静态初始化:
初始化时指定为每个数组元素的初始值,由系统决定数组长度
格式:
数据类型[] 数组名 = new 数据类型[]{元素1,元素2.....};
简化格式:
数据类型[] 数组名 = {元素1,元素2.....};
e.g int[] arr = {1,2,3};
注意事项:
不能同时使用静态数组和动态数组
e.g int[] arr = new int[3]{1,2,3}; //error
6.3.3访问数组元素
数组中的每个元素均有编号(第一位 0),最大编号是数组的长度-1。
用数组名和编号的配合就可以获取数组中指定编号(索引)的元素。
通过数组名访问数据的格式: 数组名[索引];
数组提供了一个属性length,用于获取数组的长度
格式:数组名.length
* 数组常见小问题:
ArrayIndexOutOfBoundsException:数组索引越界异常
原因:访问不存在的索引
NullPointerException:空指针异常
原因:数组已经不在堆内存了。还用数组名访问元素