3、java函数和数组

导读:本篇文章讲解 3、java函数和数组,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

java函数和数组

1、函数
    1)函数的定义:就是定义在类中的具有特定功能的一段独立小程序。函数也被称为方法。
    格式:
        修饰符 返回值类型 函数名 (参数类型 形式参数1 , 参数类型 形式参数2 , .... ){
            执行语句;
            return 返回值;
        } 

    返回值类型:函数运行后的结果的数据类型。
    参数类型:是形式参数的数据类型。
    形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。
    实际参数:传递给形式参数的具体数值。
    return:用于结束函数。
    返回值:该函数运算后的结果,该结果会返回给调用者。
注意:返回值是void时,return可以省略。

范例:
    //对两个数值进行相加,并且返回 和 的值
    public static int plus(int a , int b){
        return a+b;
    }


    2)函数的特点:
        定义函数可以将功能代码封装。
        便于对该功能的复用。
        函数只有被调用才被执行。
        函数的出现提高了代码的复用性。
    注意:函数中只能调用函数,不可以在函数内部定义函数。
        定义函数时,函数的结果应该返回调用者,交由调用者进行处理。


    3)函数的应用:
        栈:先进后出


    4)函数的重载:overload
        概念:
            在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或者参数类型不同即可。
        特点:
            与返回值类型无关,只看参数列表。
        好处:
            方便于阅读,优化了程序设计。
        示例:
            //返回两个整数的和
            public static int add(int x,int y){return x+y;}

            //返回三个整数的和——参数个数不同
            public static int add(int x,int y,int z){return x+y+z;}

            //返回两个小数的和——参数类型不同
            public static double add(double x,double y){return x+y;}
        范例:打印自定义乘法口诀表
            public static void printCFB(int num){
                for(int x = 1; x <= num; x++){
                    for(int y = 1; y <= x; y++){
                        System.out.print(y+"*"+x+"="+y*x+"\t");
                    }
                    System.out.println();
                }
            }

            public static void printCFB(){
                for(int x = 1; x <= 9; x++){
                    for(int y = 1; y <= x; y++){
                        System.out.print(y+"*"+x+"="+y*x+"\t");
                    }
                    System.out.println();
                }
            }

            解析:
                传几过来就打印到几的乘法口诀表,不传值打印 9*9 乘法口诀表



2、数组
    1)定义:
        概念:同一数据类型数据的集合。其实数组就是一个容器。
        好处:可以自动给数组中的元素从0开始编号,方便操作这些元素。
        格式1:
            元素类型[] 数组名 = new 元素类型[元素的个数或者说数组长度];
            示例:int[] arr = new int[5];
        格式2:
            元素类型[] 数组名 = new 元素类型[]{元素,元素,元素,.......};
            示例:int[] arr = new int[]{1,2,3,4};
                int[] arr = {1,2,3,4};
        

    2)内存分配及特点:
        内存划分:
            寄存器
            本地方法区
            方法区
            栈内存:特点是处理速度快
                存储都是局部变量(方法内的变量,只在当前方法内有用,如:形式参数,方法内变量,for循环内的参数)。
                一旦变量离开自己的作用域,其内存就会被自动释放。
                所有变量都在栈里面。除了静态变量。
                局部代码块:
                    {
                        int a = 3;//限定局部变量的生命周期,运行完立马释放
                    }
            堆内存:
                存储的是对象。凡是 new 建立的都存在堆中。
                特点是:
                    每一个实体都有一个首地址值。
                    堆内存中的每一个变量都有默认的初始化值,根据类型的不同而不同。整数是0、小数0.0或者0.0f、oolean false、char '\u0000'。
                    垃圾回收机制:引用数据类型(相当于c++中的指针)存储在此。当 arr = null; 引用消失。堆中的对象变成’垃圾‘,’垃圾回收机制‘会进行回收。c++是手动清理,使用析构函数进行回收。

    
    3)操作常见问题:
        数组越界:
            ArrayIndexOutOfBoundsException
            当访问到数组中不存在的角标时,就会发生该异常。
        空指针异常:
            NullPointerException
            当引用型变量没有任何实体指向时,还在用其操作实体,就会发生该异常。
        
        
    4)常见操作:
        核心思想:就是对角标的操作
        遍历:循环遍历
        长度:arr.length
        存: arr[0] = 1;
        取: arr[i];

        最值操作:
            最大值或最小值
            int[] arr = {1,2,3,6,5,4};
            int max = 0;//存储最大值
            for(int i = 0; i <= arr.length-1; i++){
                if(arr[i]>max){
                max = arr[i]; 
                }
            }
            System.out.println("该数组最大值为:"+max);
        
        排序和查找:单独写一篇详细解析!
            选择排序:

            冒泡排序:

        
    
    
    5)数组的应用:
        如果数据出现了对应关系,而且对应关系的一方是有序的数字编号,并作为角标使用,这时候要想到使用数组。



    6)数组中的数组:
        二维数组:
            格式1:int[][] arr = new int[3][2];
                定义了名称为arr的二维数组。
                二维数组中有3个一维数组。
                每一个一维数组中有2个元素。
                给第一个一维数组的元素角标写法为:arr[0][1] = 78;
            格式2:int[][] arr = new int[3][];
                二维数组中三个一维数组。
                每一个一维数组的初始化值为null。
                可以对这三个一维数组分别进行初始化。
                    arr[0] = new int[3];
                    arr[1] = new int[1];
                    arr[2] = new int[2];
            格式3:int[][] arr = {{1,2},{2,3,7},{6,7}};
        遍历:
            for(int i = 0; i < arr.length; i++){
                for(int j = 0; j < arr[i].length; j++){
                    System.out.print("arr" + arr[i][]j);
                }
            }

谢谢观看,转载请表明出处~


欢迎关注本人公众号,不定期会有纯技术分享哦~

扫码关注
公众号

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/17161.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!