天天看點

3、java函數和數組

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);
                }
            }
           

謝謝觀看,轉載請表明出處~

歡迎關注本人公衆号,不定期會有純技術分享哦~

掃碼關注:

3、java函數和數組