1. 程式人生 > 其它 >|NO.Z.00048|——————————|BigDataEnd|——|Java&集合類庫.V05|----------------------------------------------|Java.v05|List集合.二.v02|

|NO.Z.00048|——————————|BigDataEnd|——|Java&集合類庫.V05|----------------------------------------------|Java.v05|List集合.二.v02|

1 概述

方法是實現某個功能的語句塊的集合。

System.out.println();

PS:呼叫 System類 中的 out物件println方法。

1.1 方法設計原則

在設計方法時,最好保持方法的原子性。即一個方法只完成 1 個功能。

1.2 命名規則

首字母小寫 和 駝峰原則。

2 定義

方法包含一個方法頭和一個方法體。

2.1 語法

修飾符 返回值型別 方法名(引數型別 引數名){
	...
    方法體
    ...
    return 返回值;
}

2.2 方法頭

  1. 修飾符(可選),告知編譯器如何呼叫該方法。定義了該方法的訪問型別。

  2. 返回值型別,void ( 無需return ) 或 具體的返回值型別修飾(需要 return 對應的返回值)。

  3. 方法名,是方法的實際名稱。方法名和引數列表共同構成方法簽名。

  4. 引數型別(可選):引數的資料型別

2.3 方法體

定義方法功能的語句。

2.4 例--最大值

package com.study;

public class T {
    private static int a;

    public static void main(String[] args) {
        System.out.println(max(3, 4));
    }

    public static int max(int num1, int num2) {
        T.a = num1;
        int result = 0;
        if (num1 == num2) {
            System.out.println("a==b");
            return 0;
        } else if (num1 > num2) {
            result = num1;
        } else {
            result = num2;
        }
        return result;
    }

}

3 方法呼叫

  • 呼叫方法:物件名.方法名(實參列表)
  • Java支援兩種呼叫方法的方式,根據方法是否返回值來選擇。

3.1 有返回值

當方法有返回值時,方法呼叫通常被黨走一個值,如:

int max = max(30,40);

3.2 無返回值

方法返回值為void,方法呼叫一定是一條語句,如:

System.out.println();

4 值傳遞 和 引用傳遞

參考:https://blog.csdn.net/qq_47897078/article/details/120211873

4.1 值傳遞

指在呼叫函式時將實際引數複製一份傳遞到函式中,這樣在函式中如果對引數進行修改,將不會影響到實際引數。

4.2 引用傳遞

指在呼叫函式時將實際引數的地址直接傳遞到函式中,那麼在函式中對引數所進行的修改,將影響到實際引數。

PS:Java中只有值傳遞,只不過對於物件引數,值的內容是物件的引用。

5 方法的過載

過載就是在一個類中,有相同的函式名稱,但形參不同的函式。

5.1 過載規則

  1. 方法名稱必須相同

  2. 引數列表不同(個數、型別,引數排列順序不同等)

  3. 方法的返回值型別相同或不同

  4. 僅僅只有返回型別不同不能稱為方法的過載

匹配規則:方法名稱相同時,編譯器會根據呼叫方法的引數個數、引數型別等逐個匹配,以選擇對應的方法,若匹配失敗,則編譯器報錯。

5.2 例項

package com.study;

public class T {

    public int max(int num1, int num2) {
        int result = 0;
        if (num1 == num2) {
            System.out.println("a==b");
            return 0;
        } else if (num1 > num2) {
            result = num1;
        } else {
            result = num2;
        }
        return result;
    }

    //方法過載
    public double max(double num1, double num2) {
        double result = 0;
        if (num1 == num2) {
            System.out.println("a==b");
            return 0;
        } else if (num1 > num2) {
            result = num1;
        } else {
            result = num2;
        }
        return result;
    }
}

6 命令列傳參

有時候你希望執行一個程式 傳遞給它訊息。這要靠傳遞命令列引數給 main()函式實現。

例項

package com.study;

public class T {
    public static void main(String[] args) {
        for (int i = 0; i < args.length; i++) {
            System.out.println("args[" + i + "]" + args);
        }
    }
}

7 可變引數

  • JDK 1.5 開始,Java支援傳遞同類型的 可變引數 給一個方法

  • 在方法宣告中,在指定引數型別加一個省略號(...)

  • 一個方法中只能指定一個可變引數,它必須時方法的最後一個引數。任何普通的引數必須在它之前宣告

例項

package com.study;

public class T {
    public static void main(String[] args) {
        printMax(66,70,56,32,108);
    }

    public static void printMax(double... num) {
        if (num.length == 0) {
            System.out.println("沒有任何引數");
            return;//結束
        }
        double result = num[0];
        //比大小
        for (int i = 1; i < num.length; i++) {
            if (num[i] > result) {
                result = num[i];
            }
        }
        System.out.println("The max value is " + result);
    }
}