Java中的函数
-
函数的定义
- 什么是函数:函数就是定义在类中的具有特定功能的一段独立小程序。函数也称方法。
- 函数的格式
修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,......)
{
执行语句;
return 返回值;
}
返回值类型:函数运行后的结果的数据类型。
参数类型:是形式参数的数据类型。
形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。
return:用于结束函数。
返回值:该函数运算以后的结果,该结果好会返回给调用者。
函数的调用:函数名(实参1,实参2,......); 函数的特点
1:定义函数可以将功能代码进行封装
2:便于对于该功能进行服用
3:函数只有被调用才会被执行
4:函数的出现提高了代码的复用性
5:对于函数没有具体返回值的情况下,返回值类型用关键字void表示,那么该函数中的return语句如果在最后一行可以省略不写。
注意:
1>:函数中只能调用函数,不可以在函数内定义函数。
2>:定义函数时函数的结果应该返回给调用者,交由调用者处理
- 函数的应用
两个明确:
1:明确要定义的功能最后的结果是什么
2:明确在定义该功能的过程中,是否需要位置内容参与运算
例如:
需求:定义一个功能,可以实现两个整数的加法运算。
分析:
1:该功能的运算结果是什么,两个数的和也就是一个整数int
2:在实现该功能的过程中是否有未知的内容参与运算,加数和被加数是不确定的,两个参数int,int
代码:
int getSun(int a, int b){
return a+b;
}
- 函数的重载(overload)
Java中的数组
- 数组的定义
数组常见的异常一般有两种:
1:索引越界:java.lang.ArryIndexOutOfBoundsExcetion.
2:空指针异常:java.lang.NullPointerException。注意:Java中没有指针可供直接操作
Java中没有显示的指针操作,引用就是指针,指针是对象的内存地址,如果说对象不存在为null,就不能访问其属性和方法,否则会出现NullPointerExceptiion.
- 数组的内存分配及特点
- 数组操作常见的问题
- 数组常见的操作
- 获取最值(最大值和最小值)
- 排序(选择排序,冒泡排序)
/*
* 冒泡排序
*/
class BubbleSort
{
public static void main (String[] args){
int[] arr = {5,3,6,1,4,8,0,9,2};
for(int i = arr.length - 1;i > 0; i--){
for(int j = 0; j < i; j++){
if(arr[j] > arr[j + 1]){
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
for(int temp : arr){
System.out.print(temp + " ");
}
System.out.println();
}
}
// 选择排序
class SelectedSort
{
public static void main(String[] args){
int[] arr = {3,2,5,4,1,6,9,0,8,7};
for(int i = 0;i < arr.length - 1; i++){
for(int j = i + 1;j < arr.length;j++){
if(arr[i] > arr[j]){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
for(int n : arr){
System.out.print(n + " ");
}
}
}
- 折半查找(二分查找)
- 在有序的序列中,进行二分法查找,每次取出搜索范围的中间值进行比较,依次再进行范围的缩小,直至找到所需要的值
class HalfFind
{
public static void main(String[] args){
int[] arr = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
// 最小值的角标
int min = 0;
// 最大值的角标
int max = arr.length - 1;
// 要查找的数
int num = 10;
int index = -1;
while(min <= max){
// 中间值的角标
int mid = (min + max)/2;
// 找到了
if(arr[mid] == num){
index = mid;
break;
// 范围落在左边
}else if(arr[mid] > num){
max = mid - 1;
//范围落在了右边
}else{
min = mid + 1;
}
}
System.out.println(index);
}
}
- 数组中的数组