1.函数的概述:
定义(作用):定义在类中的一小段具有特定功能的程序。
一般格式:
修饰符(publci static) 返回值类型(void) 方法名(参数列表1 形式参数1,参数类型2 形式参数2.。。)
{
//执行语句(方法体)
//return 返回值
}
解释:
修饰符:public static
返回值类型:这段程序最终返回的结果的类型。
函数名:其实就是函数的名称,方便调用
参数:
参数类型:其实就是数据类型。
形式参数:就是接受实际参数的变量。
实际参数:实际参与运算的那个变量。
执行语句:就是按照正常的逻辑完成的功能代码。
返回值:就是程序的结果。
return 返回值:将来哪里调用这个函数,那么,return就把结果返回到哪里。
2.特点:
函数与函数是平级关系,不能嵌套定义。
函数只有被调用才会执行。
调用方法:
单独调用。如果有返回值,一般直接调用是没有意义的。
输出调用。因为,我可能还需要对结果进行计算,所以,不够好。
赋值调用。是什么返回值类型,就用什么类型接收。(不要忽略隐式转换的问题。返回byte 可以用int接收)
定义函数的前提:
明确返回值类型;明确参数列表;
在很多时候,我们的功能和可能是相同的,但是参数可能不同。如果起不统的名字,当然是可以的。
但是,又由于函数的名字---见名知意。所以,很多时候,我们必须用一个有意义的名字。
在这种情况下,java就提供了一种机制:函数重载。
函数重载:
是在一个类中,方法名相同,但参数列表不同(包括个数或者类型),与返回值类型无关!
注意:写什么类型的形式参数,你就应该用什么类型的实际参数调用。
如果实际类型是小的形式类型是大的,可以。反之不行。
3.数组:
定义:存储多个同一种数据类型的容器
好处:元素具备索引,方便操作
特点:
1)可以存储基本数据类型,也可是引用数据类型
2)只能存放同一组数据类型
3)数组的长度固定。(定义多少是多少)
格式:元素类型[] 数组名 =new 元素类型[长度];
直接打印数组:看到数组在内存中地址值的十六进制表示形式。
获取元素格式:
数组名[索引]
4.内存
栈: 局部变量
特点:使用完了自动消失。
堆:new建立的实例
都有默认的值:
整形: 0
浮点型: 0.0
字符型: '\u000'
字符串: null
boolean: false
数组的定义方式:
int[] arr1 = new int[5];
int[] arr2={1,2,3,4,5}; 相当于:int[] arr2=new int[]{1,2,3,4,5};
int[] arr3=new int[]{1,2,3,4};
int arr2 []={1,2,4,5,6};
int[] arr=new int[];写法错误,没有开辟空间。
int[] arr2=new int[5]{1,2,3,4,5};写法错误。
数组操作获取最值:
思路: 1) 定义变量,记录每次比较后较大的值
2) 遍历数组,拿到每个元素,与变量记录的值进行比较,如果发现遍历到的值更大,
就把这个值赋给变量。
3) 遍历结束,变量就是记录的最大值。
二维数组。。。。。
格式:1)数据类型[][] 变量名=new 数据类型[n][m];
格式:2)数据类型[][] 变量名=new 数据类型[n][];
在对每一个以为数组进行初始化
格式:3)数据类型[][] 变量名={{12,23,3},{1,2,34,5},{23,4,5,6}};
遍历二位数组的思路:
外循环遍历二维数组,得到每一个一维数组,内循环遍历以为数组。
数组的长度不要数,直接定义成 arr.length
重点:
1.函数的定义和调用。(掌握)
2.函数的概述,执行流程,和结束条件理解即可。
3.函数的重载(面试题)
4.数组概述,内存图解(理解)
5.数组的定义使用(遍历,求最值,普通查找) |
|