方法的基本用法
什么是方法?
- Java語言中的“方法”(Method)在其他語言當中也可能被稱為“函式”(Function),
- 對于一些復雜的代碼邏輯,如果希望重復使用這些代碼,并且做到“隨時任意使用”,那么就可以將這些代碼放在一個大括號“{}”當中,并且起一個名字,使用代碼的時候,直接找到名字呼叫即可,(其實與C語言的函式基本一致)
方法存在的意義
- 是能夠模塊化的組織代碼
- 做到代碼被重復使用,一份代碼可以在多個位置使用
- 讓代碼更好理解更簡單
- 直接呼叫現有方法開發,不必重復造輪子
方法的構成
- 修飾符:修飾符,這是可選的,告訴編譯器如何呼叫該方法,定義了該方法的訪問型別
- 回傳值型別 :方法可能會回傳值,returnValueType 是方法回傳值的資料型別,有些方法執行所需的操作,但沒有回傳值,在這種情況下,returnValueType 是關鍵字void
- 引數型別:引數像是一個占位符,當方法被呼叫時,傳遞值給引數,這個值被稱為實參或變數,引數串列是指方法的引數型別、順序和引數的個數,引數是可選的,方法可以不包含任何引數
- 方法名:是方法的實際名稱,方法名和引數表共同構成方法簽名,
- 方法體:方法體包含具體的陳述句,定義該方法的功能,

代碼示范:
public class Test {
public static int add(int a,int b) { //函式的實作
int c=a+b;
return c;//回傳值
}
public static void main(String[] args) {
int a=100;
int b=100;
int c=add(a,b);//加法函式
System.out.println("c="+c);//驗證結果
}
}

注:通過上面的知識可知Java的方法無論是知識還是使用都與C語言高度相似,
方法的多載
方法多載是讓類以統一的方式處理不同型別資料的一種手段,
方法多載:
- 1、同一個類中
- 2、方法名相同,引數串列不同(引數順序、個數、型別)
- 3、方法回傳值、訪問修飾符任意
- 4、與方法的引數名無關
代碼展示:由于引數型別不匹配,所以不能直接使用現有的add方法,

因此當遇到上面情況是,可以改寫成這樣,就行,

方法遞回
什么是方法遞回?
方法自己呼叫自己,這就是方法遞回
當遞回時程式沒有結束條件,一定會發生:
- 堆疊記憶體溢位錯誤:stackOverflowError
- 所以:遞回必須要有結束條件
注:由于Java的遞回與C的遞回基本一致,這里就不作過多闡述,
eg1:
//遞回求n的階乘
public class Target {
public static int fun(int n) {
if(n==1) {
return 1;
}
return n*fun(n-1);
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=0;
n=sc.nextInt();
int sum=fun(n);
System.out.println("sum="+sum);
}
}
eg2:
//遞回求 1 + 2 + 3 + ... + 10
public class Target {
public static int add(int n) {
if(n==1) {
return 1;
}
return n+add(n-1);
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=10;//10
int sum=add(n);
System.out.println("sum="+sum);
}
}
eg3:
//求斐波那契數列的第n項,(迭代實作)
public class Target {
public static int fib(int b) {
if(b<=2) {
return 1;
}
return (fib(b-1)+fib(b-2));
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int a=sc.nextInt();
int b=fib(a);
System.out.println("b="+b);
}
}

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/295395.html
標籤:java
