Java基礎(chǔ)精講方法的使用
一、方法
方法是什么?
在Java中方法就相當于C語言中的函數(shù)。因為有時候我們需要一塊代碼重復(fù)使用,這時候就可以使用方法。
為什么要用方法?
1. 是能夠模塊化的組織代碼 ( 當代碼規(guī)模比較復(fù)雜的時候 ).
2. 做到代碼被重復(fù)使用 , 一份代碼可以在多個位置使用 .
3. 讓代碼更好理解更簡單 .
4. 直接調(diào)用現(xiàn)有方法開發(fā) , 不必重復(fù)造輪子
方法的基本語法格式:
public static 返回類型 方法名稱(形參列表){}
在這里要注意形參是實參的一份臨時拷貝,形參并不能改變實參?。?!
來看個例子:
public class TestModer { public static void main(String[] args) { int a = 10; int b = 20; System.out.println("交換前"+"a = " + a + " b = " + b); swap(a, b); System.out.println("交換后"+"a = " + a + " b = " + b); } public static void swap(int x, int y) { int tmp = x; x = y; y = tmp; } }
我們可以看看運行結(jié)果:
我們可以看到這里是傳值調(diào)用,所以改變形參并不能改變實參。還有需要注意的就是在C語言中,被調(diào)用的函數(shù)需要放在調(diào)用函數(shù)前面,在Java中,方法的位置可以放前面也可以放后面,因為在Java中是從主函數(shù)開始執(zhí)行的。
二、方法的重載
方法的重載是什么意思呢?我們通過一個例子來了解:
public class TestModer { public static void main(String[] args) { int a = 10; int b = 20; int ret = add(a, b); System.out.println("ret = " + ret); double a2 = 10.5; double b2 = 20.5; double ret2 = add(a2, b2); System.out.println("ret2 = " + ret2); double a3 = 10.5; double b3 = 10.5; double c3 = 20.5; double ret3 = add(a3, b3, c3); System.out.println("ret3 = " + ret3); public static int add(int x, int y) { return x + y; } public static double add(double x, double y) { return x + y; } public static double add(double x, double y, double z) { return x + y + z; } }
在這里我們可以看到結(jié)果:
我們可以看看這三個方法,分別代表了兩個整數(shù)的加法,兩個浮點數(shù)的加法,三個浮點數(shù)的加法。這三個方法的方法名字都相同,第一個方法和第二個方法參數(shù)個數(shù)相同,第二個方法和第三個方法參數(shù)類型相同。
在C語言中同一個工程中每個函數(shù)函數(shù)名不能相同,但是Java中這里可以,同一個方法名字, 提供不同版本的實現(xiàn), 稱為 方法重載。
重載需要滿足的條件:
1、方法名相同 。
2、方法的參數(shù)不同 ( 參數(shù)個數(shù)或者參數(shù)類型 ) 。
3、方法的返回值類型不做要求。
三、方法遞歸
遞歸是什么?
一個方法在執(zhí)行過程中調(diào)用自身 , 就稱為 " 遞歸 "。
注意:
1、遞歸需要有個趨近于終止的條件,否則會無限循環(huán)。
2、每次執(zhí)行會越來越接近這個條件。
遞歸執(zhí)行過程是什么樣的呢?來看看幾個例題:
//輸出一個整數(shù)的每一位,如:123的每一位是1 ,2 ,3 public class TestModer { public static void print(int n) { if (n < 10) { System.out.print(n + " "); } else { print(n / 10); System.out.print(n % 10 + " "); } } public static void main5(String[] args) { int num = 123; print(num); } }
我們可以看到方法print自己調(diào)用自己的過程,每次執(zhí)行時,n都越來越接近終止條件,這就是遞歸的一個過程。
//求斐波那契數(shù)列的第3項。(遞歸實現(xiàn)) public class TestModer { public static int fib(int num) { if(num==1||num==2){ return 1; } else{ return fib(num-1)+fib(num-2); } } public static void main(String[] args) { int n=3; int x=fib(n); System.out.println(x); } }
四、小結(jié)
以上就是方法的一些使用,其中遞歸是一種重要的編程解決問題的方式,有些問題天然就是使用遞歸方式定義的(例如斐波那契數(shù)列, 二叉樹等), 此時使用遞歸來解就很容易,有些問題使用遞歸和使用非遞歸(循環(huán))都可以解決,那么此時更推薦使用循環(huán), 相比于遞歸, 非遞歸程序更加高效。
到此這篇關(guān)于Java基礎(chǔ)精講方法的使用的文章就介紹到這了,更多相關(guān)Java方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
如何對quartz定時任務(wù)設(shè)置結(jié)束時間
這篇文章主要介紹了如何對quartz定時任務(wù)設(shè)置結(jié)束時間問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12Java中的ReadWriteLock高效處理并發(fā)讀寫操作實例探究
這篇文章主要為大家介紹了Java中的ReadWriteLock高效處理并發(fā)讀寫操作實例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2024-01-01SpringBoot3整合Druid監(jiān)控功能的項目實踐
Druid連接池作為一款強大的數(shù)據(jù)庫連接池,提供了豐富的監(jiān)控和管理功能,成為很多Java項目的首選,本文主要介紹了SpringBoot3整合Druid監(jiān)控功能的項目實踐,感興趣的可以了解一下2024-01-01