方法和数组
方法:
方法定义:
[修饰符] void 方法名([参数列表])
{
}
[修饰符] 返回值类型 方法名([参数列表])
{
return 返回值类型的值;
}
int sum(int a,int b)//a = 1; b = 3;
{
return a + b;
}
形参: 定义在方法申明上的用来接收外界传入值的变量;
实参: 调用某一个方法的时候,实际传入的值;
方法签名: 方法名 + 参数列表
参数列表: 参数类型,参数个数,参数顺序
方法只有被调用才能执行;
调用方法:[类/对象.]方法名(实参); int ret = sum(1,3);
定义方法,其实就是定义一个完成独立功能的代码块;
是否需要返回值: 调用者需要该方法执行后的结果;
传入什么参数: 完成该功能需要多少和哪些未知的元素
方法重载:(Overload)
两同一不同:
两同:在同一个类中,方法名相同;
一不同: 参数列表不同
和返回值类型,修饰符都没关系;
数组:
用来装同一种数据类型的容器;
数组一旦初始化Ok ,长度就不可改变;
数组里的成员: 数组元素
数组里的元素,都有脚标/索引(index),索引从0开始排;
数组申明:
数组类型[] 数组名;
数组必须初始化之后才能使用;
静态初始化: 我们指定数组元素值,系统决定长度;
格式: 数组名 = new 数组类型[]{ 值1,值2....};
简答格式: 数组名 = { 值1,值2....};
动态初始化: 我们指定数组的长度,系统自动分配元素的初值(和成员变量)
格式: 数组名 = new 数组类型[int类型的长度值];
整数: 0
小数: 0.0
char: '\u0000'
boolean: false
引用类型: null
访问数组:
得到数组长度: 数组名.length;//length是数组的一个属性
访问某一个元素: 数组名[该元素的脚标];
数组里的元素的脚标的区间:[0,数组长度-1] <----->[0,数组长度)
使用for循环操作数组元素
int[] arr = new int[4];
arr = new int[6];
二维数组:
int[][] arr2 = new int[3][4];
3:表示最外层一维数组的长度;
4:表示这个3个一维数组的长度;
操作二维数组:
获取二维数组的长度:arr2.length
获取二维数组里第二个元素的长度:arr2[1].length;
int[][] arr2 = new int[0][4];//不允许
//先获得二维数组第一个元素里每一个值
for(int i= 0; i<arr2[0].length; i ++)
{
int i = arr2[0][i];
}
//先获得二维数组第2个元素里每一个值
for(int i= 0; i<arr2[1].length; i ++)
{
int i = arr2[1][i];
}
//先获得二维数组第3个元素里每一个值
for(int i= 0; i<arr2[2].length; i ++)
{
int i = arr2[2][i];
}
///优化
for(int x = 0; x <= arr2.length-1; x++)
{
//x = 0 , 1, 2
for(int i= 0; i<arr2[x].length; i ++)
{
int i = arr2[x][i];
}
}
方法参数的传递机制:
引用传递:
传递的是该参数值的一个副本