Java 03

方法的概念:

方法是定義在類中的一段獨立的代碼塊,用來實現某個功能。Java中,方法又被稱爲函數。

函數的主要作用是爲了提高代碼的複用性。

函數都是在棧內存中運行;運行的函數處在棧頂。

函數格式:修飾符 返回值類型  函數名([    參數類型1 參數名1,參數類型2 參數名2.... ]){
              // [ ] 裏面表示可選項,即參數不是必須的
               執行語句...
               return  返回值;    //返回值的類型必須與返回值類型一致
                }

說明:

修飾符:可以是訪問修飾符,也可以說是函數修飾符(abstractfinalstaticsynchronized),還可以是兩者的組合。
返回值類型:用於限定函數返回值的數據類型。
參數類型:用於限定調用函數時傳遞的數據類型。
參數名:是一個變量,用來接收調用方法時傳遞的數據。
return:用來接收方法以及返回函數指定類型的值。
返回值:這個值會返回給函數的調用者。
示例:

public class Method {
    /*
     * 程序入口,主函數 .
     * @ 方法 <==> 函數,指的是同一個東西.
     */
    public static void main(String[] args) {
        // 通過函數名調用
        method01();
        method02(9, 3);
        System.out.println("5+6=" + add(5, 6));
    }

    /*
     * @ 函數的格式爲:
     *
     * @ 訪問修飾符 返回值類型 函數名(參數類型1 參數名1,參數類型2 參數名2....){
     *
     * @ 執行語句
     *
     * @ return 返回值;//返回值的類型必須與返回值類型一致
     *
     * @ }
     */
    /*
     * @ 聲明一個靜態函數method01() 無參數無返回值
     */
    static void method01() {
        System.out.println("這是method01方法,可以通過method01();調用.");
// 這個return可以省略.每個函數都是以return結束,返回到函數調用處
        return;
    }

    /*
     * 有參數無返回值
     */
    static void method02(int num1, int num2) {
        method01();
        System.out.println("這是method02方法,第一個參數是" + num1 + "第二個參數是" + num2);
    }

    /*
     * 有返回值的返回值類型要和要返回的數據類型一致
     *
     * @ 例如:計算兩個整數的和,結果仍然是整型,返回值類型爲int.返回值類型可以說基本數據類型,也可是自定義的數據類型
     */
    static int add(int num1, int num2) {
        int sum = 0; // 聲明一個整形變量並初始化爲0
        sum = num1 + num2;// 將num1和num2的和賦值給sum
        return sum;// 將sum的值返回到調用處
    }

方法的重載:

函數的重載是指,在同一個類中,可以定義多個函數名相同、參數列表不同的函數。

參數名相同,參數個數不同,參數列表不同均屬於函數重載的情況。注意,函數的重載和返回值類型無關。

調用時通過函數名和參數列表來確定一個函數。

示例:

public class Overloading {
    public static void main(String[] args) {

    //函數同名,發生重載,調用時通過函數名和參數列表來確定一個函數。
        name(5);
        name(3, 4);
        name(1, 'A');
        name('Z', 26);
     }
        public static void name(int i) {
        	System.out.println("void name(int i)的函數被調用!");
        }
        // 與返回值無關,同名函數會發生錯誤
        // public static int name(int i) {
        // System.out.println("int name(int i)的函數被調用!");
        // return i-1;
        // }

        private static void name(int i, int j) {
        	System.out.println("name(int i, int j)的函數被調用!");
        }

        // private static void name(int j,int i) {} //於 name(int i, int
        // j)是一樣的,是同一個函數,會發生錯誤

        private static void name(int i, char j) {
        	System.out.println("name(int i, char j)的函數被調用!");
        }

        private static void name(char j, int i) {
        	System.out.println("name(char j, int i)的函數被調用!");
        }
}

方法的遞歸:

函數的遞歸是指在一個函數的內部調用自身的過程。

遞歸必須要有結束條件,不然就是陷入無限遞歸的狀態,永遠無法結束函數的調用。

示例:

public class Recursion {

    public static void main(String[] args) {

        int sum = sum(50);// 利用遞歸求1~50的和
        System.out.println("1+2+3+4+....+47+38+49+50=" + sum);
    }

    // 利用遞歸求累加值
    private static int sum(int i) {

        if (i == 1) {
            return 1;
        }

        return i + sum(i - 1);
    }
}

總結

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章