九天學會Java,第五天,函式定義,函式呼叫

凱威的講堂發表於2019-01-19
  • 變數和資料型別,賦值和輸出
  • 算術運算
  • 選擇結構
  • 迴圈結構
  • 函式定義,函式呼叫 <–
  • 變數作用域
  • 棧,程式執行的基石
  • 物件導向
  • 異常處理
  • 語言提供的公用包

什麼是函式,為什麼有函式,大家可能有這樣的疑問。
舉一個例子來回答大家的疑問:比如一個財務軟體,裡面需要反反覆覆地把很多賬單加起來,過去一週的,過去一月的一年的。為了提高程式碼的複用性,我們把賬單相加這個功能封裝成一段獨立的小程式。當下次再面臨賬單相加時,就呼叫這段小程式。那麼這種封裝的形式就叫做“函式”

函式的格式

修飾符 返回值型別 函式名(引數型別 形式引數1,引數型別 形式引數2,…)
{
    執行語句;
    return 返回值;//有可能有return,有可能無return
}

函式的定義

我們參考函式的格式定義幾個函式

因為我們要在public static void main(String[] args) 中呼叫函式,所以函式也要定義成static。

static 修飾的方法我們稱之為靜態方法,屬於類級別,不是物件級別。他在類載入的時候就存在了。static 方法只能呼叫 static 方法

/**
 * 本節講函式的定義和呼叫
 * 同時也複習前面學習的內容
 */
public class FifthLesson {
    /**
     * 定義一個justPrintMax函式
     * void指沒有返回值,該函式不會返回任何值
     * @param a 引數a
     * @param b 引數b
     * @param c 引數c
     */
    public static void justPrintMax(int a, int b, int c) {
        /**
         * 當呼叫者呼叫該函式
         * 引數a,b,c會分別被傳值
         * 然後進入函式體
         */
        /**
         * 定義一個int,變數名是max
         * 把a的值賦值給max
         */
        int max = a;
        /**
         * 如果b 大於 max,則
         * 執行 max = b
         * 此時 max是a,b兩者的最大值
         */
        if (b > max) {
            max = b;
        }
        /**
         * 如果c 大於 max,則
         * 執行 max = c
         * 此時 max是a,b,c三者的最大值
         */
        if (c > max) {
            max = c;
        }
        /**
         * 輸出max值,沒有返回
         */
        System.out.println(max);
    }

    /**
     * 定義一個getMax函式
     * 此函式有返回值
     * @param a 引數a
     * @param b 引數b
     * @param c 引數c
     * @return 返回三者的最大值
     */
    public static int getMax(int a, int b, int c) {
        /**
         * 新建一個int,變數名是max
         * 把 a 賦值 給 max
         */
        int max = a;
        /**
         * 如果 b 大於 max
         * 則執行 max = b
         */
        if (b > max) {
            max = b;
        }
        /**
         *  如果 c 大於 max
         *  則執行 max = c
         */
        if (c > max) {
            max = c;
        }
        /**
         * 返回max
         */
        return max;
    }

    public static void main(String[] args) {
        /**
         * 呼叫justPrintMax函式
         * 把3傳給a,5傳給b,2傳給c
         */
        justPrintMax(3, 5, 2);
        /**
         * 呼叫getMax函式
         * 把3傳給a,5傳給b,2傳給c
         * 新建變數max
         * 取函式返回值,傳給max
         */
        int max = getMax(3, 5, 2);
        System.out.println(max);
    }
}

為什麼要用函式

  1. 使程式變得更簡短而清晰。
  2. 有利於程式維護。
  3. 可以提高程式開發的效率。
  4. 提高了程式碼的重用性。

總結

  • 函式如果宣告成void則沒有返回值
  • 使用函式之前,要先定義函式
  • 使用函式要按函式的定義傳遞引數

作業

  • 寫一個函式,輸入是String name, 比如輸入是“小楠”,輸出是 “我愛小楠”
  • 寫一個函式,輸入語文,數學,英語三門課的成績,輸出三門課的平均分

相關文章