Java學習苦旅(五)——方法?方法!!!

rampant boy 2022-01-07 05:57:56 阅读数:969

java 苦旅 方法 方法

本篇博客將介紹Java中的方法。

方法的使用

什麼是方法

初次看到方法兩字,心裏有些疑惑。方法不是指為獲得某種東西或達到某種目的而采取的手段與行為方式嗎?這是我們日常生活中所說的方法。而在Java中, 方法就是一個代碼片段,類似於C語言中的函數。

方法的存在意義:

  1. 當代碼規模比較複雜的時候,能够模塊化地組織代碼。

  2. 做到代碼被重複使用。一份代碼可以在多個比特置使用。

  3. 讓代碼更好理解更簡單。

  4. 直接調用現有方法開發,不必重複造輪子。

方法的語法

基本語法

// 方法定義
public static 方法返回值 方法名稱([參數類型 形參 ...]){

//方法體代碼;
return 返回值;
}
// 方法調用
返回值變量 = 方法名稱(實參...);

代碼示例

public static void main(String[] args) {

int a = 20;
int b = 30;
int c = add(a,b);//方法的調用
System.out.println(c);
}
//方法的定義
public static int add(int a,int b) {

return a + b;
}

結果為:

image-20210805094220832

注意事項

  1. 方法定義時,參數可以沒有,每個參數要指定類型。

  2. 方法定義時,返回值也可以沒有,如果沒有返回值,則返回值類型應寫成 void。

  3. 方法定義時的參數稱為"形參",方法調用時的參數稱為 “實參”。

  4. 方法的定義必須在類之中, 代碼書寫在調用比特置的上方或者下方均可。

  5. Java 中沒有 “函數聲明” 這樣的概念。

方法的調用

調用規則

  1. 定義方法的時候,不會執行方法的代碼。只有調用的時候才會執行。

  2. 當方法被調用的時候,會將實參賦值給形參。

  3. 參數傳遞完畢後,就會執行到方法體代碼。

  4. 當方法執行完畢之後(遇到 return 語句),就執行完畢,回到方法調用比特置繼續往下執行。

  5. 一個方法可以被多次調用。

代碼示例

public static void main(String[] args) {

int a = 20;
int b = 30;
int c = add(a,b);
System.out.println("c = " + c);
int d = add(a,c);
System.out.println("d = "+ d);
int e = add(c,d);
System.out.println("e = "+ e);
}
public static int add(int a,int b) {

return a + b;
}

結果為:

image-20210805100025612

方法的重載

引例

如果我們需要一個計算兩個整型之和的方法,那麼我們可以這樣定義:

public static int addInt(int a,int b) {

return a + b;
}

如果我們需要一個計算兩個double型之和的方法,那麼我們可以這樣定義:

public static double addDouble(double a, double b) {

return a + b;
}

我們可以發現,這兩個方法的作用基本相同,都是計算兩數之和,只是參數和返回類型不同而已。那麼我們是否可以將其簡化呢?

使用重載

public static int add(int a,int b) {

return a + b;
}
public static double add(double a, double b) {

return a + b;
}

同一個方法名字,供不同版本的實現,稱為方法重載

我們可以通過下面這段代碼進行驗證:

public static void main(String[] args) {

int a = 20;
int b = 30;
double c = 5.4;
double d = 7.8;
System.out.println(add(a,b));
System.out.println(add(c,d));
}
public static int add(int a,int b) {

return a + b;
}
public static double add(double a, double b) {

return a + b;
}

結果為:

image-20210805110158073

重載規則

  1. 方法名相同
  2. 參數列錶不同(參數個數和參數類型不同)
  3. 返回值不作要求
  4. 重載不是必須要在一個類當中(繼承)

當兩個方法的名字相同,參數也相同,但是返回值不同的時候,不構成重載。 例如:

image-20210805111007916

此時編輯器便報錯。

方法遞歸

遞歸定義

一個方法在執行過程中調用自身,同時有一個趨近於終止的條件,就稱為方法遞歸。

代碼示例

public static void main(String[] args) {

int n = 5;
int ret = fac(n);
System.out.println("ret = " + ret);
}
//求n的階乘
public static int fac(int n) {

if(n == 1) {

return 1;
} else {

return n * fac(n - 1);
}
}

執行結果為:

image-20210805113629063

遞歸執行過程分析

例如上面這段代碼,它的執行過程如下:

image-20210805154125359

更簡潔的解釋如下:

image-20210805155020536

所有的遞歸都可以這樣分析。

本篇博客到此結束。

上一篇博客:Java學習苦旅(四)——Java代碼的三根頂梁柱

下一篇博客預告:Java學習苦旅(六)——不一樣的數組

版权声明:本文为[rampant boy]所创,转载请带上原文链接,感谢。 https://gsmany.com/2022/01/202201070557561429.html