一篇文章帶你入門java方法
方法的使用
什么是方法
初次看到方法兩字,心里有些疑惑。方法不是指為獲得某種東西或達(dá)到某種目的而采取的手段與行為方式嗎?這是我們?nèi)粘I钪兴f的方法。而在Java中, 方法就是一個(gè)代碼片段,類似于C語言中的函數(shù)。
方法的存在意義:
1.當(dāng)代碼規(guī)模比較復(fù)雜的時(shí)候,能夠模塊化地組織代碼。
2.做到代碼被重復(fù)使用。一份代碼可以在多個(gè)位置使用。
3.讓代碼更好理解更簡單。
4.直接調(diào)用現(xiàn)有方法開發(fā),不必重復(fù)造輪子。
方法的語法
基本語法
// 方法定義
public static 方法返回值 方法名稱([參數(shù)類型 形參 ...]){
//方法體代碼;
return 返回值;
}
// 方法調(diào)用
返回值變量 = 方法名稱(實(shí)參...);
代碼示例
public static void main(String[] args) {
int a = 20;
int b = 30;
int c = add(a,b);//方法的調(diào)用
System.out.println(c);
}
//方法的定義
public static int add(int a,int b) {
return a + b;
}
結(jié)果為:

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

方法的重載
引例
如果我們需要一個(gè)計(jì)算兩個(gè)整型之和的方法,那么我們可以這樣定義:
public static int addInt(int a,int b) {
return a + b;
}
如果我們需要一個(gè)計(jì)算兩個(gè)double型之和的方法,那么我們可以這樣定義:
public static double addDouble(double a, double b) {
return a + b;
}
我們可以發(fā)現(xiàn),這兩個(gè)方法的作用基本相同,都是計(jì)算兩數(shù)之和,只是參數(shù)和返回類型不同而已。那么我們是否可以將其簡化呢?
使用重載
public static int add(int a,int b) {
return a + b;
}
public static double add(double a, double b) {
return a + b;
}
同一個(gè)方法名字,供不同版本的實(shí)現(xiàn),稱為方法重載。
我們可以通過下面這段代碼進(jìn)行驗(yàn)證:
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;
}
結(jié)果為:

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

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

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

更簡潔的解釋如下:

所有的遞歸都可以這樣分析。
總結(jié)
本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容在!
相關(guān)文章
Jmeter如何獲取jtl文件中所有的請(qǐng)求報(bào)文詳解
JMeter的可以創(chuàng)建一個(gè)包含測試運(yùn)行結(jié)果的文本文件,這些通常稱為JTL文件,因?yàn)檫@是默認(rèn)擴(kuò)展名,但可以使用任何擴(kuò)展名,這篇文章主要給大家介紹了關(guān)于Jmeter如何獲取jtl文件中所有的請(qǐng)求報(bào)文的相關(guān)資料,需要的朋友可以參考下2021-09-09
sonar-scanner連接sonarquebe7的sonar.java.binaries問題的解決方案
今天小編就為大家分享一篇關(guān)于sonar-scanner連接sonarquebe7的sonar.java.binaries問題的解決方案,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-12-12
SpringBoot實(shí)現(xiàn)對(duì)超大文件進(jìn)行異步壓縮下載的使用示例
在Web應(yīng)用中,文件下載功能是一個(gè)常見的需求,本文介紹了SpringBoot實(shí)現(xiàn)對(duì)超大文件進(jìn)行異步壓縮下載的使用示例,具有一定的參考價(jià)值,感興趣的可以了解一下,2023-09-09
mybatis-generator-gui 工具使用(圖形化工具)
基于 mybatis generator 開發(fā)一款界面工具, 本工具可以使你非常容易及快速生成 Mybatis 的 Java POJO 文件及數(shù)據(jù)庫 Mapping 文件。本文重點(diǎn)給大家介紹mybatis-generator-gui 工具使用,感興趣的朋友一起看看吧2022-03-03
Spring事務(wù)&Spring整合MyBatis的兩種方式
這篇文章主要介紹了Spring事務(wù)&Spring整合MyBatis的兩種方式,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-02-02
Java CharacterEncodingFilter過濾器的理解和配置案例詳解
這篇文章主要介紹了Java CharacterEncodingFilter過濾器的理解和配置案例詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08
JavaWeb 實(shí)現(xiàn)驗(yàn)證碼功能(demo)
在 WEB-APP 中一般應(yīng)用于:登錄、注冊、買某票、秒殺等場景,大家都接觸過這個(gè)驗(yàn)證碼操作,今天小編通過實(shí)例代碼給大家講解javaweb實(shí)現(xiàn)驗(yàn)證碼功能,需要的朋友參考下2017-02-02
解決SpringMVC項(xiàng)目連接RabbitMQ出錯(cuò)的問題
這篇文章主要介紹了解決SpringMVC項(xiàng)目連接RabbitMQ出錯(cuò)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-01-01
jquery uploadify和apache Fileupload實(shí)現(xiàn)異步上傳文件示例
這篇文章主要介紹了jquery uploadify和apache Fileupload實(shí)現(xiàn)異步上傳文件示例,需要的朋友可以參考下2014-05-05

