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

關(guān)于Java如何正確地實(shí)現(xiàn)方法重載詳解

 更新時(shí)間:2023年05月10日 09:49:13   作者:一一哥Sun  
在一個(gè)類中,可以定義多個(gè)構(gòu)造方法,這叫做方法的重載!但是關(guān)于方法重載,具有有哪些要求和細(xì)節(jié)?在今天的這篇文章中,小編給大家詳細(xì)說說方法重載相關(guān)的內(nèi)容,需要的朋友可以參考下

一. 方法重載

1. 概念

所謂方法的重(chong)載(重復(fù)出現(xiàn)),就是指在一個(gè)類中可以有多個(gè)名稱相同但參數(shù)不同的方法, 不過方法重載與返回值的類型無關(guān)。在Java中,無論是普通方法,還是構(gòu)造方法,都可以進(jìn)行重載。我們在調(diào)用重載的方法時(shí),會(huì)根據(jù)傳遞的參數(shù)不同,來執(zhí)行不同的方法。

通過方法的重載,我們就可以把一系列功能相似,但參數(shù)不同的方法,用同一個(gè)方法名進(jìn)行定義。這樣就避免了出現(xiàn)繁多的方法名,如果我們每次新建一個(gè)方法,就取個(gè)新的方法名,就會(huì)降低程序的可讀性。使用同一個(gè)方法名稱,我們就很容易記住這些方法,使用起來就很方便靈活。

2. 要求

根據(jù)方法重載的概念可知,方法重載時(shí)有如下要求:

1. 同名不同參(參數(shù)類型、個(gè)數(shù)、順序);

2. 與返回值、訪問修飾符無關(guān)。

也就是說,方法重載時(shí),要求方法的名稱相同,但參數(shù)不同,只要參數(shù)的類型、個(gè)數(shù)、順序有一個(gè)地方不同即可。但方法的重載與返回值和使用的訪問修飾符沒有關(guān)系!

我們可以自己進(jìn)行重載方法的定義,當(dāng)然java源碼中也有大量的重載方法,比如我們常見的String類中就有,如下圖所示:

比如String字符串中就定義了多個(gè)indexOf()和lastIndexOf()重載方法,當(dāng)然也有其他的重載方法。這些方法名稱相同,但參數(shù)肯定不同,和返回值沒有關(guān)系!

說了這么多之后,接下來還是讓我們通過一些案例看看方法的重載怎么實(shí)現(xiàn)吧。

二. 代碼案例

1. 普通方法重載

接下來我們設(shè)計(jì)一個(gè)案例,用于比較兩個(gè)數(shù)字的大小。我們在比較兩個(gè)數(shù)值時(shí),數(shù)值的類型是不固定的,可能是兩個(gè)int類型的數(shù)值,也可能是兩個(gè)double類型的數(shù)值,也可能是兩個(gè)double、一個(gè)int類型的數(shù)值......在這種情況下,我們就可以使用方法的重載來實(shí)現(xiàn)數(shù)值之間的比較。具體實(shí)現(xiàn)代碼參考如下:

/**
 * @author 
 */
public class Demo01 {
    public static void main(String[] args) {
        Demo01 demo=new Demo01();
	int max01 = demo.max(10, 20);
	System.out.println("較大的整數(shù)是:"+max01);
		
	float max02 = demo.max(20.0f, 39.8f);
	System.out.println("較大的單精度數(shù)是:"+max02);
		
	double max03 = demo.max(22.88, 10.88);
	System.out.println("較大的雙精度數(shù)是:"+max03);

        double max04 = demo.max(44.88, 5);
	System.out.println("較大的雙精度數(shù)是:"+max04);
    }

    // 輸出較大的那個(gè)整數(shù)
    public int max(int a, int b) {
	// 采用三目運(yùn)算符進(jìn)行簡化判斷
	return a >= b ? a : b;
    }

    // 輸出較大的那個(gè)單精度數(shù)
    public float max(float a, float b) {
	// 采用三目運(yùn)算符進(jìn)行簡化判斷
	return a >= b ? a : b;
    }

    // 輸出較大的那個(gè)單精度數(shù)
    public double max(double a, double b) {
	// 采用三目運(yùn)算符進(jìn)行簡化判斷
	return a >= b ? a : b;
    }
    
    //定義一個(gè)私有的方法,該方法的兩個(gè)參數(shù)類型不同,這同樣也屬于方法重載。
    private double max(double a, int b) {
	// 采用三目運(yùn)算符進(jìn)行簡化判斷
	return a >= b ? a : b;
    }
}

以上代碼,編譯、運(yùn)行都是完全沒問題的。雖然3個(gè)max()方法名稱相同,但它們的形參列表不同,所以系統(tǒng)可以正常區(qū)分出這3個(gè)方法。在運(yùn)行時(shí),Java虛擬機(jī)會(huì)根據(jù)傳遞過來的不同參數(shù)來調(diào)用不同的方法。

2. 構(gòu)造方法重載

除了普通方法可以重載之外,構(gòu)造方法也可以重載。但是我們要注意,構(gòu)造方法沒有返回值。

/**
 * @author
 */
public class Car {
    // 汽車品牌
    public String logo;

    // 汽車顏色
    private String color;

    // 汽車價(jià)格
    private double price;

    // 無參構(gòu)造方法
    public Car() {
	System.out.println("汽車類...");
    }

    // 有參構(gòu)造方法
    public Car(String logo) {
	System.out.println("汽車類...logo=" + logo);
    }

    // 有參構(gòu)造方法
    public Car(String logo, String color) {
	System.out.println("汽車類...logo=" + logo + ",color=" + color);
    }

    // 有參構(gòu)造方法
    public Car(String logo, String color, double price) {
	System.out.println("汽車類...logo=" + logo + ",color=" + color + ",price=" + price);
    }
}

我們在構(gòu)造Car汽車類對象時(shí),可以如下所示:

public class Demo02 {
    public static void main(String[] args) {
	Car car1 = new Car();
	Car car2 = new Car("奧迪A6");
	Car car3 = new Car("奧迪A6", "黑色");
	Car car4 = new Car("奧迪A6", "黑色", 50.0);
    }
}

這樣通過傳入不同的參數(shù),就可以構(gòu)造出不同的汽車對象。

三. 結(jié)語

至此,就把方法重載相關(guān)的內(nèi)容講解完畢了,現(xiàn)在你知道哪些情況屬于方法重載了嗎?方法重載要點(diǎn)如下:

  • 方法重載是指同一類中有多個(gè)方法的名稱相同,但參數(shù)不同;
  • 重載的方法功能都類似,比如 String indexOf()方法 ;
  • 重載方法的返回值類型盡量要相同。

以上就是關(guān)于Java如何正確地實(shí)現(xiàn)方法重載詳解的詳細(xì)內(nèi)容,更多關(guān)于Java方法重載的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java contains用法示例

    Java contains用法示例

    這篇文章主要介紹了Java contains的用法示例,幫助大家更好的理解和學(xué)習(xí)Java,感興趣的朋友可以了解下
    2020-11-11
  • Java DatabaseMetaData用法案例詳解

    Java DatabaseMetaData用法案例詳解

    這篇文章主要介紹了Java DatabaseMetaData用法案例詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • SpringBoot使用自動(dòng)配置xxxAutoConfiguration

    SpringBoot使用自動(dòng)配置xxxAutoConfiguration

    這篇文章介紹了SpringBoot自動(dòng)配置xxxAutoConfiguration的使用方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • Spring Data JPA分頁復(fù)合查詢原理解析

    Spring Data JPA分頁復(fù)合查詢原理解析

    這篇文章主要介紹了Spring Data JPA分頁復(fù)合查詢原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Java編寫迷宮小游戲

    Java編寫迷宮小游戲

    最近經(jīng)常在機(jī)房看同學(xué)在玩一個(gè)走迷宮的游戲,比較有趣,自己也用java寫一個(gè)實(shí)現(xiàn)隨機(jī)生成迷宮的算法,其實(shí)就是一個(gè)圖的深度優(yōu)先遍歷算法.
    2016-05-05
  • Java如何自定義類數(shù)組的創(chuàng)建和初始化

    Java如何自定義類數(shù)組的創(chuàng)建和初始化

    這篇文章主要介紹了Java如何自定義類數(shù)組的創(chuàng)建和初始化,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • java8 LocalDate 使用詳解

    java8 LocalDate 使用詳解

    這篇文章主要介紹了java8 LocalDate 使用詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • Spring?Cloud?OpenFeign?遠(yuǎn)程調(diào)用

    Spring?Cloud?OpenFeign?遠(yuǎn)程調(diào)用

    這篇文章主要介紹了Spring?Cloud?OpenFeign?遠(yuǎn)程調(diào)用,本文通過遠(yuǎn)程調(diào)用的GitHub開放API用到的OpenFeign作為示例代碼作為入口進(jìn)行講解。然后以圖解+解讀源碼的方式深入剖析了OpenFeign的運(yùn)行機(jī)制和架構(gòu)設(shè)計(jì),需要的朋友可以參考一下
    2022-08-08
  • SpringBoot 中html的頁面間跳轉(zhuǎn)問題小結(jié)

    SpringBoot 中html的頁面間跳轉(zhuǎn)問題小結(jié)

    這篇文章主要介紹了SpringBoot 中html的頁面間跳轉(zhuǎn)問題小結(jié),本文給大家分享兩種方法,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-10-10
  • SpringCloud OpenFeign超時(shí)控制示例詳解

    SpringCloud OpenFeign超時(shí)控制示例詳解

    在Spring Cloud中使用OpenFeign時(shí),可以通過配置來控制請求的超時(shí)時(shí)間,這篇文章主要介紹了SpringCloud OpenFeign超時(shí)控制,需要的朋友可以參考下
    2024-05-05

最新評論

蒙自县| 双峰县| 沁源县| 三台县| 沅江市| 长岭县| 西充县| 阿城市| 措勤县| 疏勒县| 拉萨市| 临沭县| 玉环县| 香港| 封开县| 正安县| 樟树市| 乌拉特前旗| 盐亭县| 临泉县| 甘泉县| 甘南县| 临江市| 尉氏县| 定结县| 资阳市| 横山县| 靖宇县| 宁阳县| 名山县| 四子王旗| 南漳县| 渝北区| 剑川县| 香河县| 东至县| 平湖市| 安远县| 浮梁县| 溧水县| 综艺|