最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

重載(重新載選方法):

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

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

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

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

P.S.此例也在糾正本人在上次分享經(jīng)驗(yàn)時(shí)候犯下的一個(gè)可笑錯(cuò)誤。再次查看標(biāo)題,表示無(wú)誤,是重載,沒(méi)有寫(xiě)成重寫(xiě)。

方法/步驟

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

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

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

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

4、第3步驟我們說(shuō)的是不同的參數(shù),并不是對(duì)參數(shù)的命名的不同,而是指參數(shù)類(lèi)型的不同,我們寫(xiě)出來(lái)讓事實(shí)證明一下。如圖,參數(shù)類(lèi)型相同,都為整數(shù)類(lèi)型,但是形參的命名不同,編譯無(wú)法通過(guò)。

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

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

再給大家一個(gè)的簡(jiǎ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;
}

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

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

相關(guān)文章

  • SpringBoot3結(jié)合gRpc實(shí)現(xiàn)遠(yuǎn)程服務(wù)調(diào)用的流程步驟

    SpringBoot3結(jié)合gRpc實(shí)現(xiàn)遠(yuǎn)程服務(wù)調(diào)用的流程步驟

    gRPC是一個(gè)現(xiàn)代開(kāi)源高性能遠(yuǎn)程過(guò)程調(diào)用(RPC)框架,可以在任何環(huán)境中運(yùn)行,它由Google開(kāi)發(fā),旨在幫助開(kāi)發(fā)人員更輕松地構(gòu)建分布式應(yīng)用,特別是當(dāng)代碼可能在不同地方運(yùn)行的時(shí)候,本文介紹了SpringBoot3結(jié)合gRpc實(shí)現(xiàn)遠(yuǎn)程服務(wù)調(diào)用的流程步驟,需要的朋友可以參考下
    2024-07-07
  • JSP、Servlet中g(shù)et請(qǐng)求和post請(qǐng)求的區(qū)別總結(jié)

    JSP、Servlet中g(shù)et請(qǐng)求和post請(qǐng)求的區(qū)別總結(jié)

    這篇文章主要介紹了JSP、Servlet中g(shù)et請(qǐng)求和post請(qǐng)求的區(qū)別總結(jié),列舉了多條不同點(diǎn),需要的朋友可以參考下
    2014-07-07
  • Java實(shí)現(xiàn)統(tǒng)計(jì)文件夾下所有文件的字?jǐn)?shù)

    Java實(shí)現(xiàn)統(tǒng)計(jì)文件夾下所有文件的字?jǐn)?shù)

    這篇文章主要為大家詳細(xì)介紹了如何使用Java實(shí)現(xiàn)統(tǒng)計(jì)文件夾下所有文件的字?jǐn)?shù),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-03-03
  • 關(guān)于SpringBoot2.7.6連接nacos遇到的一些問(wèn)題

    關(guān)于SpringBoot2.7.6連接nacos遇到的一些問(wèn)題

    這篇文章主要介紹了關(guān)于SpringBoot2.7.6連接nacos遇到的一些問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • intellij idea如何將web項(xiàng)目打成war包的實(shí)現(xiàn)

    intellij idea如何將web項(xiàng)目打成war包的實(shí)現(xiàn)

    這篇文章主要介紹了intellij idea如何將web項(xiàng)目打成war包的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Java BeanUtils.copyProperties的詳解

    Java BeanUtils.copyProperties的詳解

    這篇文章主要介紹了Java BeanUtils.copyProperties的詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • 解決spring boot啟動(dòng)掃描不到自定義注解的問(wèn)題

    解決spring boot啟動(dòng)掃描不到自定義注解的問(wèn)題

    這篇文章主要介紹了解決spring boot啟動(dòng)掃描不到自定義注解的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-09-09
  • Java中提供synchronized后為什么還要提供Lock

    Java中提供synchronized后為什么還要提供Lock

    這篇文章主要介紹了Java中提供synchronized后為什么還要提供Lock,在Java中提供了synchronized關(guān)鍵字來(lái)保證只有一個(gè)線(xiàn)程能夠訪(fǎng)問(wèn)同步代碼塊,下文更多相關(guān)資料需要的小伙伴可以參考一下
    2022-03-03
  • springboot整合log4j的踩坑實(shí)戰(zhàn)記錄

    springboot整合log4j的踩坑實(shí)戰(zhàn)記錄

    log日志的重要性不言而喻,所以我們需要在系統(tǒng)內(nèi)根據(jù)實(shí)際的業(yè)務(wù)進(jìn)行日志的整合,下面這篇文章主要給大家介紹了關(guān)于springboot整合log4j的踩坑實(shí)戰(zhàn)記錄,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • spring?IOC容器的Bean管理XML自動(dòng)裝配過(guò)程

    spring?IOC容器的Bean管理XML自動(dòng)裝配過(guò)程

    這篇文章主要為大家介紹了spring?IOC容器Bean管理基于XML的自動(dòng)裝配過(guò)程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05

最新評(píng)論

长海县| 宣武区| 桃园县| 湘西| 嵊泗县| 龙川县| 开原市| 津南区| 蓬溪县| 湘阴县| 台东市| 进贤县| 翁牛特旗| 嘉黎县| 廉江市| 贵州省| 奈曼旗| 绍兴县| 五华县| 平罗县| 浮梁县| 洪雅县| 皋兰县| 靖州| 扬州市| 泰州市| 如皋市| 隆化县| 积石山| 云霄县| 鹤壁市| 利津县| 崇义县| 伊川县| 兴安盟| 轮台县| 乐陵市| 石家庄市| 丁青县| 淮北市| 康保县|