日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【javase基础】第六篇:方法的重载与递归

發(fā)布時間:2023/12/18 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【javase基础】第六篇:方法的重载与递归 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

👀作者簡介:大家好,我是大杉。
🚩🚩 個人主頁:愛編程的大杉
支持我:點贊+關(guān)注~不迷路🧡🧡🧡
?系列專欄:javase基礎(chǔ)???
(?′?`?)勵志格言:在我有生之日,做一個真誠的人,不放棄對生活的熱愛和執(zhí)著,在有限的時空里,過無限廣大的日子。(by 三毛)
🤞🤞

文章目錄

  • 一?重載的基本用法?
  • 一、為什么要設(shè)計重載?
  • 二、如何判斷是不是重載?
    • 1.重載的特征:
    • 2.常見案例:
  • 三.遞歸的條件與本質(zhì)
  • 四.典型例題
    • 1.斐波那契額數(shù)列(多路遞歸)
    • 2.求n的階乘(單路遞歸)
    • 3.遞歸的不足(壓棧現(xiàn)象)


一?重載的基本用法?

看下面這段代碼?

public class test {public static void main(String[] args) {double a = 3.14;double b = 4.12;int c=2;int d=3;System.out.println(sum(a, b));System.out.println(sum(c, d));}public static int sum(int a, int b) {return a + b;}public static double sum(double a, double b) {return a+b;} }


定義多個方法使它們的方法名相同,參數(shù)列表不同,傳參數(shù)時實參根據(jù)自身類型,選擇相應(yīng)的方法進行運算的方式叫做方法重載

一、為什么要設(shè)計重載?

主要目的:節(jié)約字母,減少操作復(fù)雜性。

舉個例子👀:我們java通常使用的打印方法System.out.println(),其實也是這個原理,在打印時,我們不能為每一個不同的數(shù)據(jù)類型都定義一種打印方法,只能放在一個方法了,根據(jù)數(shù)據(jù)類型自行選擇打印方式


二、如何判斷是不是重載?

1.重載的特征:

1📣.方法名相同。
2.返回值不做要求
3.參數(shù)列表不同(參數(shù)個數(shù)或參數(shù)類型不同)
4.必須在同一個類當(dāng)中

2.常見案例:

1.不能完全一樣
2.正確案例
3.正確案例:

三.遞歸的條件與本質(zhì)

🏴???條件:要有限制條件和遞歸公式
🌞本質(zhì):遞歸分為”遞“和”歸”兩個過程,通過給定的條件進行“遞”過程,再通過return進行“歸”過程,最終通過限制條件結(jié)束遞歸

如果沒有限制條件會怎么樣?
方法調(diào)用時是在棧內(nèi)存中開辟一塊內(nèi)存空間,如果沒有限制條件。會使方法無限次調(diào)用,造成棧溢出。因為棧內(nèi)存使有一定限度的。

四.典型例題

1.斐波那契額數(shù)列(多路遞歸)

public static void main(String[] args) {Scanner sc=new Scanner(System.in);int n=sc.nextInt();System.out.println(feibona(n));}public static int feibona(int n){if(n==1){return 1;}else if(n==2){return 1;}else{return feibona(n-1)+feibona(n-2);}}

2.求n的階乘(單路遞歸)

public static void main(String[] args) {Scanner sc=new Scanner(System.in);int n=sc.nextInt();fac(n);}public static int fac (int n){if(n==1){return 1;}else{return n*fac(n-1);}}

以4的階乘為例

3.遞歸的不足(壓棧現(xiàn)象)

一般我們運行斐波那契數(shù)列用迭代(循環(huán))而不是遞歸,因為當(dāng)進行一些比較大的數(shù)的遞歸時,它運行的效率比較低。那么為什么呢,這就不得不提到“穿脫原則”和“壓棧現(xiàn)象”

壓棧現(xiàn)象:如上圖所示,在遞歸的數(shù)十分大時,會不斷在上面開辟空間,不斷占用棧內(nèi)存,拖慢效率造成“壓棧”現(xiàn)象。
穿脫原則:類似于穿衣服一樣,先被調(diào)用的放法,后被釋放出來

總結(jié)

以上是生活随笔為你收集整理的【javase基础】第六篇:方法的重载与递归的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。