003:Java语言基础(二)


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)
003:Java语言基础(二)_第1张图片

Java中的数组

  • 数组的定义
003:Java语言基础(二)_第2张图片

数组常见的异常一般有两种:
1:索引越界:java.lang.ArryIndexOutOfBoundsExcetion.
2:空指针异常:java.lang.NullPointerException。

注意:Java中没有指针可供直接操作
Java中没有显示的指针操作,引用就是指针,指针是对象的内存地址,如果说对象不存在为null,就不能访问其属性和方法,否则会出现NullPointerExceptiion.

  • 数组的内存分配及特点
003:Java语言基础(二)_第3张图片
003:Java语言基础(二)_第4张图片
  • 数组操作常见的问题
003:Java语言基础(二)_第5张图片
  • 数组常见的操作
    • 获取最值(最大值和最小值)
    • 排序(选择排序,冒泡排序)
/*
 *  冒泡排序
 */
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);
    }
}

  • 数组中的数组
003:Java语言基础(二)_第6张图片
003:Java语言基础(二)_第7张图片

你可能感兴趣的:(003:Java语言基础(二))