欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談java實現(xiàn)重載的方法

 更新時間:2015年09月09日 09:06:48   投稿:hebedich  
方法重載是讓類以統(tǒng)一的方式處理不同類型數(shù)據(jù)的一種手段。多個同名函數(shù)同時存在,具有不同的參數(shù)個數(shù)/類型。重載Overloading是一個類中多態(tài)性的一種表現(xiàn)。Java的方法重載,就是在類中可以創(chuàng)建多個方法,它們具有相同的名字,但具有不同的參數(shù)和不同的定義。

重載(重新載選方法):

java允許在一個類中,存在多個方法擁有相同的名字,但在名字相同的同時,必須有不同的參數(shù),這就是重載,編譯器會根據(jù)實際情況挑選出正確的方法,如果編譯器找不到匹配的參數(shù)或者找出多個可能的匹配就會產(chǎn)生編譯時錯誤,這個過程被稱為重載的解析。

重載包括:普通方法的重載和構(gòu)造方法的重載

方法:即函數(shù)(文中我們統(tǒng)稱之為“方法”),是一個固定的一個程序段,或稱其為一個子程序,它在可以實現(xiàn)固定運算功能。而且,同時還帶有一個入口和一個出口,所謂的入口,就是函數(shù)所帶的各個參數(shù),我們可以通過這個入口,把函數(shù)的參數(shù)值傳入子程序,供計算機處理;所謂出口,就是指函數(shù)的返回值,在程序段執(zhí)行之后,由此返回值將值傳回給調(diào)用它的程序。

通常地,一個類可以有多個重載方法,可根據(jù)不同的需求來設(shè)計類中不同的重載方法。其中,參數(shù)個數(shù),類型,甚至不同類型參數(shù)的順序等的的不同均為對同一個方法的不同重載。比如,如圖,我們經(jīng)常見到的String類就是一個及其典型的例子。

P.S.此例也在糾正本人在上次分享經(jīng)驗時候犯下的一個可笑錯誤。再次查看標題,表示無誤,是重載,沒有寫成重寫。

方法/步驟

首先,我們先寫一個完整的例子。這是一個最原始的方法,如圖。以后各個步驟我們陸續(xù)進行學(xué)習(xí),逐層深入地重載這個方法。

1、開始呢,我們討論一下訪問修飾符對今天討論內(nèi)容是否有影響,答案是,訪問權(quán)限修飾符對方法的重載不影響。也即,它們不是構(gòu)成不同方法的必要條件。通俗點講,方法的不同和訪問修飾符是否一致沒有任何關(guān)系。如圖,如果訪問修飾符不一致,而參數(shù)相同(或者都沒有參數(shù))的話,java默認其都為同一種方法,因此編譯無法通過,報錯。

2、排除了訪問修飾符之后,接下來我們討論一下返回值的不同是否可以是重載的另一種方式,此處,我們就簡單地舉三個例子,即,返回值為空,返回值為int型二個方法,最后證明,返回值也不是構(gòu)成重載方法的必要條件,如圖:

3、接下來唯一可以區(qū)別的就是參數(shù)了。我們分情況來練習(xí)。第一種,不同的參數(shù),沒錯,不同的參數(shù)一定就是不同的方法了,我們可以再試一試,如圖:

4、第3步驟我們說的是不同的參數(shù),并不是對參數(shù)的命名的不同,而是指參數(shù)類型的不同,我們寫出來讓事實證明一下。如圖,參數(shù)類型相同,都為整數(shù)類型,但是形參的命名不同,編譯無法通過。

5、還有呢,因參數(shù)個數(shù)不同而造成的重載。我們可以再寫個例子,1個無參方法,1個int參數(shù)方法,兩個int參數(shù)方法,如圖:

6、到了此時,我們到了重點環(huán)節(jié)。請問,還有沒有其他類型的不同的重載呢?有的!想象一下,參數(shù)種類不同,個數(shù)相同,有什么辦法是之變得不一樣嗎?對的!妳猜對了!是順序不同!順序不同的情況下,依舊是不同的方法,這也就實現(xiàn)重載了。如圖:

再給大家一個的簡單示例

int sum(int m, int n){
return m + n;
}
int sum(int m,int n,int k){
return m+n+k;
}
double sum(double m,double n){
return m + n;
}
double sum(double m,double n,double k){
return m+n+k;
}

主要實現(xiàn)的是重載方法sum,具有如下語義:
sum(m,n):求整數(shù)m和n之和,
sum(m,n,k):求整數(shù)m、n和k之和,
sum(m,n):求實數(shù)m和n之和,
sum(m,n,k):求實數(shù)m、n和k之和。

最后,我們總結(jié)一下,重載關(guān)心的只是參數(shù),有參無參,參數(shù)類型不同,參數(shù)數(shù)量不同,不同類型的參數(shù)順序不同,都可以實現(xiàn)方法的重載。

相關(guān)文章

  • Spring核心容器之ApplicationContext上下文啟動準備詳解

    Spring核心容器之ApplicationContext上下文啟動準備詳解

    這篇文章主要介紹了Spring核心容器之ApplicationContext上下文啟動準備詳解,ApplicationContext 繼承自 BeanFactory ,其不僅包含 BeanFactory 所有功能,還擴展了容器功能,需要的朋友可以參考下
    2023-11-11
  • Java實現(xiàn)提取圖片邊緣的示例代碼

    Java實現(xiàn)提取圖片邊緣的示例代碼

    這篇文章主要為大家詳細介紹了如何利用Java實現(xiàn)提取圖片邊緣的功能,文中的示例代碼講解詳細,具有一定的學(xué)習(xí)價值,感興趣的小伙伴可以了解一下
    2023-06-06
  • SpringBoot打印詳細啟動異常信息

    SpringBoot打印詳細啟動異常信息

    這篇文章主要介紹了SpringBoot打印詳細啟動異常信息,本文包含了詳細的過程解析與案例,概要的說明了如何去使用打印啟動異常信息,需要的朋友可以參考下
    2021-06-06
  • SpringBoot Actuator未授權(quán)訪問漏洞解決方案

    SpringBoot Actuator未授權(quán)訪問漏洞解決方案

    工作的時候遇到過提示Spring Boot后端存在Actuator未授權(quán)訪問漏洞,網(wǎng)上有很多詳細的解釋文章,在這里做一個簡單的總結(jié)、介紹和分享,需要的朋友可以參考下
    2023-09-09
  • 一篇文章弄懂Mybatis中#和$的區(qū)別

    一篇文章弄懂Mybatis中#和$的區(qū)別

    mybatis為我們提供了兩種支持動態(tài)sql的語法#{}以及${},兩者都是動態(tài)的向sql語句中傳入需要的參數(shù),下面這篇文章主要給大家介紹了如何通過一篇文章弄懂Mybatis中#和$區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2021-12-12
  • SpringCloud的@RefreshScope 注解你了解嗎

    SpringCloud的@RefreshScope 注解你了解嗎

    這篇文章主要介紹了Spring Cloud @RefreshScope 原理及使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-09-09
  • Java實現(xiàn)短信驗證碼和國際短信群發(fā)功能的示例

    Java實現(xiàn)短信驗證碼和國際短信群發(fā)功能的示例

    本篇文章主要介紹了Java實現(xiàn)短信驗證碼和國際短信群發(fā)功能的示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-02-02
  • springboot使用Hutool的JschUtil及下載安裝步驟

    springboot使用Hutool的JschUtil及下載安裝步驟

    這篇文章主要為大家介紹了springboot使用Hutool的JschUtil的方法及下載安裝詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • Java二叉樹路徑和代碼示例

    Java二叉樹路徑和代碼示例

    這篇文章主要介紹了Java二叉樹路徑和代碼示例,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • java判斷各類型字符個數(shù)實例代碼

    java判斷各類型字符個數(shù)實例代碼

    大家好,本篇文章主要講的是java判斷各類型字符個數(shù)實例代碼,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12

最新評論