一篇文章帶你入門java方法
方法的使用
什么是方法
初次看到方法兩字,心里有些疑惑。方法不是指為獲得某種東西或達到某種目的而采取的手段與行為方式嗎?這是我們日常生活中所說的方法。而在Java中, 方法就是一個代碼片段,類似于C語言中的函數。
方法的存在意義:
1.當代碼規(guī)模比較復雜的時候,能夠模塊化地組織代碼。
2.做到代碼被重復使用。一份代碼可以在多個位置使用。
3.讓代碼更好理解更簡單。
4.直接調用現有方法開發(fā),不必重復造輪子。
方法的語法
基本語法
// 方法定義
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;
}
結果為:

注意事項
- 方法定義時,參數可以沒有,每個參數要指定類型。
- 方法定義時,返回值也可以沒有,如果沒有返回值,則返回值類型應寫成 void。
- 方法定義時的參數稱為"形參",方法調用時的參數稱為 “實參”。
- 方法的定義必須在類之中, 代碼書寫在調用位置的上方或者下方均可。
- Java 中沒有 “函數聲明” 這樣的概念。
方法的調用
調用規(guī)則
- 定義方法的時候,不會執(zhí)行方法的代碼。只有調用的時候才會執(zhí)行。
- 當方法被調用的時候,會將實參賦值給形參。
- 參數傳遞完畢后,就會執(zhí)行到方法體代碼。
- 當方法執(zhí)行完畢之后(遇到 return 語句),就執(zhí)行完畢,回到方法調用位置繼續(xù)往下執(zhí)行。
- 一個方法可以被多次調用。
代碼示例
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;
}
結果為:

方法的重載
引例
如果我們需要一個計算兩個整型之和的方法,那么我們可以這樣定義:
public static int addInt(int a,int b) {
return a + b;
}
如果我們需要一個計算兩個double型之和的方法,那么我們可以這樣定義:
public static double addDouble(double a, double b) {
return a + b;
}
我們可以發(fā)現,這兩個方法的作用基本相同,都是計算兩數之和,只是參數和返回類型不同而已。那么我們是否可以將其簡化呢?
使用重載
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;
}
結果為:

重載規(guī)則
- 方法名相同
- 參數列表不同(參數個數和參數類型不同)
- 返回值不作要求
- 重載不是必須要在一個類當中(繼承)
當兩個方法的名字相同,參數也相同,但是返回值不同的時候,不構成重載。 例如:

此時編輯器便報錯。
方法遞歸
遞歸定義
一個方法在執(zhí)行過程中調用自身,同時有一個趨近于終止的條件,就稱為方法遞歸。
代碼示例
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);
}
}
執(zhí)行結果為:

遞歸執(zhí)行過程分析
例如上面這段代碼,它的執(zhí)行過程如下:

更簡潔的解釋如下:

所有的遞歸都可以這樣分析。
總結
本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關注腳本之家的更多內容在!
相關文章
sonar-scanner連接sonarquebe7的sonar.java.binaries問題的解決方案
今天小編就為大家分享一篇關于sonar-scanner連接sonarquebe7的sonar.java.binaries問題的解決方案,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-12-12
SpringBoot實現對超大文件進行異步壓縮下載的使用示例
在Web應用中,文件下載功能是一個常見的需求,本文介紹了SpringBoot實現對超大文件進行異步壓縮下載的使用示例,具有一定的參考價值,感興趣的可以了解一下,2023-09-09
mybatis-generator-gui 工具使用(圖形化工具)
基于 mybatis generator 開發(fā)一款界面工具, 本工具可以使你非常容易及快速生成 Mybatis 的 Java POJO 文件及數據庫 Mapping 文件。本文重點給大家介紹mybatis-generator-gui 工具使用,感興趣的朋友一起看看吧2022-03-03
Java CharacterEncodingFilter過濾器的理解和配置案例詳解
這篇文章主要介紹了Java CharacterEncodingFilter過濾器的理解和配置案例詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下2021-08-08
jquery uploadify和apache Fileupload實現異步上傳文件示例
這篇文章主要介紹了jquery uploadify和apache Fileupload實現異步上傳文件示例,需要的朋友可以參考下2014-05-05

