1. 回顾
for
while
do...while
2. 函数(方法)
定义在类中,具有特定功能的一小段程序.
作用:对某种特定功能的封装.可以复用了.
格式:
修饰符 返回值 函数名(参数类型 形式参数1, 参数类型 形式参数2, ...)
{
// 方法体
// return 语句.
}
函数注意事项:
1) 函数是平级关系.不要在main方法里面定义方法.
2) 函数只有被调用的时候才能被执行.
使用时:
有返回值:
建议赋值调用, 也可以输出调用.
注意可以单独调用,但是一般没有意义.
没有返回值的呢? void -- 只能单独调用
public static int getMax(int a, int b)
{
return a > b ? a : b;
}
形参和实参
1) 方法调用的时候,传递的是实参.
2) 方法定义的时候,声明的是形参.
方法的结束:通过关键字 return.
(练习)请编写一个函数完成比较两个int类型数据是否相等的功能(5分钟)
定义函数的思路:
1) 明确返回值类型.
2) 明确参数列表.
局部变量的定义注意问题:
局部变量如果没有显示初始化值, 不会有默认初始化值.
boolean flag;
if (a == b) {
flag = true;
} else if () {
flag = false;
}
// 使用flag;
原则: 保证变量在使用之前已经初始化成功就可以了.
函数的重载:
重载是发生在一个类里面, 函数名一样,参数列表不同(个数 \ 类型 \ 顺序),这就是方法的重载.
与返回值类型无关.
fun(String str, int i)
fun(int i, String str)
-- 上面两个方法属于重载
fun(int a, int b);
fun(int b, int a);
-- 上面两个是同一个
3. 数组
1) 数组的内存图解
栈 : 存放局部变量 -- (局部变量:方法里面或者方法声明上的形参上的变量)
堆 : 存放 new 出来的实例.
A: 堆里面的实例都有地址值,而且地址值都是不一样的.
B: 内容都有默认值
整形:0
浮点型:0.0
字符型:'\u0000' -- 空字符('')
boolean类型:false
C: 里面的东西会被垃圾回收期不定时的回收.
方法区:
2) 定义数组方式 4种;
掌握:
int[] arr1 = new int[5];
int arr2[] = new int[5]; // 想使用数组的引用,用arr2
int[] arr3 = {1,2,0,4,5}; // 要求数组的每个元素都明确
int[] arr4 = new int[]{1,2,3,4,5};
3) 数组遍历
数组的索引范围: 0 ~ length - 1
重点代码:
for(int i = 0; i < 数组名.length; i++)
{
// 数组名[i]; // 依次拿到每一个元素
}
4) 二维数组的定义格式
二维数组特点:
A:二维数组中的元素就是一个一个一维数组,所以如果直接打印二维数组名称的话,结果还是地址值.
B:二维数组中多个一维数组的长度可以不同,且存储的是一维数组的地址值.
C:定义格式:
数据类型[][] 变量名 = new 数据类型[n][m];
数据类型[][] 变量名 = new 数据类型[n][]; // 初始化二维数组的长度,但里面一维数组不确定.
数据类型[][] 变量名 = {{5,6}, {8}, {1,2,3}};
int[] arr = new int[0]; // 可以的
-- 注意:数组长度可以为0. 所以想拿数组元素的时候必须先判断一下.
遍历二维数组的思路:
双层for循环
外循环控制一维数组的个数
内循环控制每一个一维数组的每一个元素
// arr
for(int x = 0; x < arr.length; x++) {
for (int y = 0; y < arr[x].length; y++) {
//System.out.print(arr[x][y]);
if (y == arr[x].length - 1) {
System.out.println(arr[x][y]);
} else {
System.out.print(arr[x][y]);
}
}
//System.out.println();
}
二维数组最终的小应用案例,注意事项
for(int x = 0; x < arr.length; x++) {
int jiduTemp = 0;
for (int y = 0; y < arr[x].length; y++) {
jiduTemp += arr[x][y];
}
System.out.println("第" + (x + 1) + "季度的销售额是:" + jiduTemp);
}
注意:数组的长度要用length属性去获取,不要数.
|
|