首頁 > 軟體

詳解Java方法method的定義與呼叫及過載

2022-04-14 22:00:21

方法的定義和呼叫

什麼是方法

方法(method)就是一段用來完成特定功能的程式碼片段,類似於其它語言的函數(function)。

方法用於定義該類或該類的範例的行為特徵和功能實現。 方法是類和物件行為特徵的抽象。方法很類似於程式導向中的函數。程式導向中,函數是最基本單位,整個程式由一個個函數呼叫組成。物件導向中,整個程式的基本單位是類,方法是從屬於類和物件的。

方法的宣告格式

[修飾符1 修飾符2 …] 返回值型別 方法名(形式參數列){

Java語句;… … … }

方法的呼叫方式

物件名.方法名(實參列表);

方法的詳細說明

  • 形式引數:在方法宣告時用於接收外界傳入的資料。
  • 實參:呼叫方法時實際傳給方法的資料。
  • 返回值:方法在執行完畢後返還給呼叫它的環境的資料。
  • 返回值型別:事先約定的返回值的資料型別,如無返回值,必須顯示指定為為void。

注意:Java中一切都是值傳遞

例如:我們要列印1-n的數,傳統寫法寫在main方法裡,但是當有多個值時,就要寫多個for迴圈,這樣,程式碼就重複多了。

public class TestCode02 {
    public static void main(String[] args) {
        int n1 = 10;
        for (int i = 1; i <= n1; i++) {
            System.out.print(i + " ");
        }
        System.out.println();
        //當有多個n時,都要每次寫一遍for迴圈
        int n2 = 13;
        for (int i = 1; i <= n2; i++) {
            System.out.print(i + " ");
        }
        System.out.println();
        
        int n3=20;
        //for...
        
    }
}

我們把相同的程式碼提取出來,放在一個方法裡,這樣每次呼叫這個方法就行了,不必每次寫相同的程式碼

public class TestCode02 {
    public static void main(String[] args) {
        int n1 = 10;
        printNnums(n1);
        int n2=12;
        printNnums(n2);
        int n3=14;
        printNnums(n3);
    }
    public static void printNnums(int n){
        for (int i = 1; i <= n; i++) {
            System.out.print(i + " ");
        }
        System.out.println();
    }
}

這樣,我們有多個n時,就只呼叫一次方法就行了

總結

1.方法是:對特定的功能進行提取,形成一個程式碼片段,這個程式碼片段就是我們所說的方法

2.方法和方法是並列的關係,所以我們定義的方法不能寫到main方法中

3.方法的定義–>格式:

        修飾符 方法返回值型別 方法名(形參列表){
                方法體;
                return 方法返回值;
        }

4.方法的作用:提高程式碼的複用性

5.總結方法定義的格式:

  • 修飾符: public static
  • 方法返回值型別 : 方法的返回值對應的資料型別

資料型別: 可以是基本資料型別(byte,short,int,long,float,double,char,boolean) 也可以是參照資料型別

  • 方法名 :見名知意,首字母小寫,其餘遵循駝峰命名, eg: addNum ,一般儘量使用英文來命名
  • 形參列表 :方法定義的時候需要的形式引數 : int num1, int num2 -->相當於告訴方法的呼叫者:需要傳入幾個引數,需要傳入的引數的型別;實際引數:方法呼叫的時候傳入的具體的引數: 10,20 -->根據形式引數的需要傳入的
  • 方法體:具體的業務邏輯程式碼
  • return 方法返回值:

方法如果有返回值的話: return+方法返回值,將返回值返回到方法的呼叫處

方法沒有返回值的話:return可以省略不寫了,並且方法的返回值型別為:void

  • 什麼時候有返回值,什麼時候沒有返回值?–>看需求

6.方法的定義需要注意什麼?

  • 形參列表要怎麼寫:定義幾個引數,分別是什麼型別的 —>不確定因素我們會當做方法的形參
  • 方法到底是否需要返回值 ,如果需要的話,返回值的型別是什麼?

7. 方法的呼叫需要注意什麼?

  • 實際引數要怎麼傳入:傳入幾個引數,傳入什麼型別的
  • 方法是否有返回值需要接受

方法的過載

什麼是方法過載

方法的過載是指一個類中可以定義多個方法名相同,但引數不同的方法。 呼叫時,會根據不同的引數自動匹配對應的方法。

注意本質:過載的方法,實際是完全不同的方法,只是名稱相同而已!

構成方法過載的條件

  • 不同的含義:形參型別、形參個數、形參順序不同
  • 只有返回值不同不構成方法的過載;(如:int add(int a,int b){}與 void add(int a,int b){}不構成方法過載)
  • 只有形參的名稱不同,不構成方法的過載;(如:int add(int a){}與int add(int b){}不構成方法過載)
public class TestCode03 {
    public static void main(String[] args) {
        add(7,8);
        add(1.02,2.03);
        add(1,3,5);
        add(1,4,6,9);

    }
    //定義一個int型兩數相加
    public static void add(int a,int b){
        System.out.println(a+"+"+b+"="+(a+b));
    }
    //定義一個double型別的兩數相加
    public static void add(double a,double b){
        System.out.println(a+"+"+b+"="+(a+b));
    }
    //定義一個三個數相加
    public static void add(int a,int b,int c){
        System.out.println(a+"+"+b+"+"+c+"="+(a+b+c));
    }
    //四數相加
    public static void add(int a,int b,int c,int d){
        System.out.println(a+"+"+b+"+"+c+"+"+d+"="+(a+b+c+d));
    }
}

總結

  • 方法的過載:在同一個類中,方法名相同,形參列表不同的多個方法,構成了方法的過載。
  • 方法的過載只跟:方法名和形參列表有關,與修飾符,返回值型別無關。
  • 注意:形參列表不同指的是什麼?

(1)個數不同

add() add(int num1) add(int num1,int num2)

(2)順序不同

add(int num1,double num2) add(double num1,int num2)

(3)型別不同

add(int num1) add(double num1)

到此這篇關於詳解Java方法method的定義與呼叫及過載的文章就介紹到這了,更多相關Java 方法內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com