Java連載30-方法重載、方法遞歸

来源:https://www.cnblogs.com/ruigege0000/archive/2019/09/16/11525237.html
-Advertisement-
Play Games

一、方法重載 1.又被稱為overload 2.方法重載使用場景 功能類似的時候,儘可能仍方法名相同(但是功能不同或者不相似的時候,方法名儘量不同) 3.什麼條件滿足之後,可以構成方法重載 (1)在同一類中;(2)方法名不同;(3)參數列表不同:i.數量不同;ii.順序不同;iii.類型不同 4.方 ...


一、方法重載

1.又被稱為overload

2.方法重載使用場景

功能類似的時候,儘可能仍方法名相同(但是功能不同或者不相似的時候,方法名儘量不同)

3.什麼條件滿足之後,可以構成方法重載

(1)在同一類中;(2)方法名不同;(3)參數列表不同:i.數量不同;ii.順序不同;iii.類型不同

4.方法重載和什麼有關係,和什麼沒有關係?

(1)方法重載和方法名+參數列表無關

(2)方法重載和返回值類型無關

 

package code_class_file;

public class D30_overload {

  public static void main(String[] args) {

      m1();

      m4(2,4);

      m5();

  }

  //以下兩個方法構成重載(數量不同)

  public static void m1() {}

  public static void m1(int a) {}

 

  //以下兩種方式構成重載(順序不同)

  public static void m2(int a,double b) {}

  public static void m2(double a,int b) {}

 

  //以下兩種方式構成方法重載(類型不同)

  public static void m3(int x) {}

  public static void m3(double x) {}

 

  //以下方法編譯錯誤,不屬於方法重載,屬於方法重覆

  //public static void m4(int a,int b){}

  //public static void m4(int b,int a){}

 

  //以下方法編譯錯誤,不屬於方法重載,屬於方法錯誤

  //void m5(){}

  //public static void m5(){}

​

}

​

 

5.方法重載的具體應用

簡寫列印操作

 

  public static void main(String[] args) {

    //簡寫列印操作

    p("jfshafo");

  }

  public static void p(byte a) {

    System.out.print(a);

  }

  public static void p(short a) {

    System.out.print(a);

  }

  public static void p(char a) {

    System.out.print(a);

  }

  public static void p(int a) {

    System.out.print(a);

  }

  public static void p(long a) {

    System.out.print(a);

  }

  public static void p(float a) {

    System.out.print(a);

  }

  public static void p(double a) {

    System.out.print(a);

  }

  public static void p(boolean a) {

    System.out.print(a);

  }

  public static void p(String a) {

    System.out.print(a);

  }

  public static void p(String[] a) {

    System.out.print(a);

  }

二、方法遞歸

1.方法遞歸定義

答:方法調用自身調用自身,稱為遞歸

例子:

 

a(){

  a();

}

 

 

2.遞歸是很耗費棧記憶體的,能不用就不用了

以下程式發生了這樣的一個錯誤(不是異常,是錯誤),錯誤發生的時候無法輓回,只有一個結果,那就是JVM停止工作

 

    public static void main(String[] args) {

    dosome();

  }

  public static dosome() {

    p("dosome開始");

    dosome();

    p("dosome結束");       

  }

 

 

3.遞歸必須有結束條件,沒有結束條件會導致棧記憶體溢出

4.有些情況下該功能的實現必須藉助遞歸,例如:目錄拷貝

5.​例子:用遞歸寫一個計算1​~N的整數求和

 

  public static void main(String[] args) {

  int N=9;

  int resultSum = sum(N);

  System.out.println(resultSum);

  }

  public static int sum(int a) {

    if (a > 1) {

      return a+sum(a-1);

    }else {

    return 1;

    }

  }

三、源碼:

D30_overload_and_recursion.java

地址:

https://github.com/ruigege66/Java/blob/master/D30_overload_and_recursion.java

2.CSDN:https://blog.csdn.net/weixin_44630050(心悅君兮君不知-睿)

3.博客園:https://www.cnblogs.com/ruigege0000/

4.歡迎關註微信公眾號:傅里葉變換,個人公眾號,僅用於學習交流,後臺回覆”禮包“,獲取大數據學習資料

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • [TOC] 1.DOM樹介紹 DOM:文檔對象模型。DOM 為文檔提供了結構化表示,並定義瞭如何通過腳本來訪問文檔結構。目的其實就是為了能讓js操作html元素而制定的一個規範。 DOM就是由節點組成的:HTML載入完畢,渲染引擎會在記憶體中把HTML文檔,生成一個DOM樹。 在HTML當中,一切都是 ...
  • 一、使用方法: 因為map標簽是與img標簽綁定使用的,所以我們需要給map標簽添加ID和name屬性,讓img標簽中的usemap屬性引用map標簽中的id或者name屬性(由於瀏覽器的不同,usemap屬性接收二者之一的值,所以通常name和id屬性二者都寫,值相同),並配合area標簽進行使用 ...
  • [TOC] 1.javascript介紹 1.1Web前端有三層: HTML:從語義的角度,描述頁面 結構 CSS:從審美的角度,描述 樣式 (美化頁面) JavaScript:從交互的角度,描述 行為 (提升用戶體驗) 1.2其中JavaScript基礎又分為三個部分: ECMAScript:Ja ...
  • 介紹 前文初始篇 "C++ 深入淺出工廠模式(初始篇)" ,主要闡述了簡單工廠模式、工廠方法模式和抽象工廠模式的結構、特點和缺陷等。以上三種方式,在新增產品時,要麼修改工廠類,要麼需新增具體的工廠類,說明工廠類的封裝性還不夠好。 本文進階篇,主要是將工廠類的封裝性提高,達到新增產品時,也不需要修改工 ...
  • 倒排索引架構 在廣告系統中倒排索引起著至關重要的作用,當請求過來時,需要根據定向信息從倒排索引中匹配合適的廣告。我們的倒排索引採用的是ElasticSearch(後面簡稱ES),考慮點是社區活躍,相關採集、可視化、監控以及報警等組件比較完善,同時ES基於java開發,所以調優和二次開發相對方便 先看 ...
  • 關鍵字&標識符 關鍵字的概念與特征 概念:Java關鍵字是事先定義好的對Java的編譯器有特殊的意義,他們用來表示一種數據類型,或者表示程式的結構等,關鍵字不能用作變數名、方法名、類名、包名和參數。 特征: 完全小寫 在增強版記事本中(例如Notepad++)有特殊顏色 標識符的概念與規則 凡是可以 ...
  • 下麵繼續給出HDU 2033~2043的AC程式,供大家參考。2033~2043這10道題就被歸結為“ACM程式設計期末考試(2006/06/07) ”和“2005實驗班短學期考試 ”。 HDU 2033:人見人愛A+B 簡單分支結構。 #include <stdio.h> int main() { ...
  • 這裡向大家分享一下python爬蟲的一些應用,主要是用爬蟲配合簡單的GUI界面實現視頻,音樂和小說的下載器。今天就先介紹如何實現一個動態視頻下載器。 爬取電影天堂視頻 首先介紹的是python爬取電影天堂網站的視頻(包括電影,電視劇,綜藝等),主要是用selenium動態網頁技術加上簡單的爬蟲技術。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...