天天看點

JavaSE篇學習之路:(四)【函數or方法】

目錄

  • ​​第一章:函數or方法​​
  • ​​1.1什麼是方法?​​
  • ​​2.1定義方法的文法機制?​​
  • ​​3.1方法記憶體加載的過程​​
  • ​​第二章:方法重載​​
  • ​​1.1重載的概念​​
  • ​​2.1方法重載的條件​​
  • ​​一起學習,快樂程式設計,歡迎攻城獅們多多交流​​

第一章:函數or方法

1.1什麼是方法?

方法定義就是具有特定功能的一段 獨立小程式,可以被多次使用

實作代碼複用,提高複用性。

定義函數過程:

  1. 是一個封閉區間,需要大括号封裝。
  2. 需要給這個區間起名字,以後多次使用該區間。
  3. 為區間提供資料的輸入,以便使用額外資料進行運算。
  4. 需要定義結果類型。

2.1定義方法的文法機制?

[修飾符清單]  傳回值類型 方法名(形參清單){
         方法體;
          return 傳回值;
   // return 關鍵字用于結束,并将傳回值傳回給調用者
    // 注意如果 傳回值類型為void 可以省略return 其他情況下 return必有 并且return後面不能再有語句
   }      

1.關于修飾符清單:(可選項,public,private等)

2.關于傳回值類型:

①Java中的合法資料類型。(基本and 引用)

②傳回值類型:一般指,一個方法執行結束後的資料結果。

③void表示方法執行結束後不傳回任何結果。

④如果傳回值類型不是void,必須使用"return 值;"

⑤有return執行,目前方法必然結束。

3.方法名:見名知意。首字母小寫後面每個單詞首字母大寫。

4.形參:形參清單中,每個資料為局部變量,方法結束後釋放。

代碼示範:

public class Demo06 {

    public static void main(String[] args) {
        int sum =  add(3,4);
        System.out.println("sum = "+sum);
    }
    public static int add(int num01,int num02){
       return  num01 + num02;
    }
}      

3.1方法記憶體加載的過程

public class Demo06 {

    public static void main(String[] args) {
        int a = 3;
        int b = 4;
        int sum =  add(a,b);
        System.out.println("sum = "+sum);
    }
    public static int add(int num01,int num02){
       return  num01 + num02;
    }
}      

說明:

1. JVM加載main方法進入 棧記憶體 中,并執行main的方法。執行到4 、5行先給a、b開辟空間,并指派。

2. 第6行,先将add函數壓進 棧記憶體 中,執行add函數。在add函數所屬空間裡 再開辟兩片空間給num01和num02,接收main傳來的值 3,4.

3. 執行add函數,并将結果return給main中調用的地方,然後add函數彈棧。

4. main方法将add函數執行的結果給sum變量。然後繼續進行。全部執行完,main方法彈棧。

第二章:方法重載

java為我們提供了重載這個功能,使用重載就可以解決某個功能不同場合的泛用性,一個函數的多個版本。

1.1重載的概念

在一個類中,允許存在一個以上同名函數,隻要他們的參數清單(個數和類型)不同。就形成了重載,函數重載和傳回值無關。

(功能相似的代碼,使用相同代碼名。)

2.1方法重載的條件

1.必須在同一個類中。

2.方法名相同。

3.參數清單不同。(個數不同,類型不同,順序不同)

println就是一個方法,使用重載!!

代碼示範:

public class Demo07 {
    // 方法{}裡的内容為方法體
    public static int computer(int a,int b){
        return a+b;
    }

    public static int computer(int a, int b ,int c){
        return a+b+c;
    }

    public static double computer(double a, double b){
        return a/b;
    }

//    public static double computer(double num01, double num02){
//        return 0;
//    } 函數的參數是一種形式參數

//    public static int computer(double a, double b){
//        return (int)a/b;
//    }
    public static void main(String[] args) {
        computer(2.3,1.7); // JVM不知道調用結果的 如果重載跟傳回值有關 調用時就會産生歧義
        computer(1.0,2.0); // 參數名也是不會認為是參數清單的屬性,名稱隻是形式,是以參數清單裡的參數名全是形式參數
    }
}      
void show(int a,float b,char c){} 為藍本

1. int show(int x,float y,char z) 沒有
2. void show(float b,int a, char c) 有 
3. void show(int c,float a,char b) 沒有
4. void show(int a,int b,int c) 有
5. double show()有      

一起學習,快樂程式設計,歡迎攻城獅們多多交流

繼續閱讀