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

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

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

一. 方法重載

1. 概念

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

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

2. 要求

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

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

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

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

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

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

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

二. 代碼案例

1. 普通方法重載

接下來我們設(shè)計一個案例,用于比較兩個數(shù)字的大小。我們在比較兩個數(shù)值時,數(shù)值的類型是不固定的,可能是兩個int類型的數(shù)值,也可能是兩個double類型的數(shù)值,也可能是兩個double、一個int類型的數(shù)值......在這種情況下,我們就可以使用方法的重載來實現(xiàn)數(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);
    }

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

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

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

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

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

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

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

    // 汽車顏色
    private String color;

    // 汽車價格
    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汽車類對象時,可以如下所示:

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)在你知道哪些情況屬于方法重載了嗎?方法重載要點如下:

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

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

相關(guān)文章

  • Java contains用法示例

    Java contains用法示例

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

    Java DatabaseMetaData用法案例詳解

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

    SpringBoot使用自動配置xxxAutoConfiguration

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

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

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

    Java編寫迷宮小游戲

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

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

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

    java8 LocalDate 使用詳解

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

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

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

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

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

    SpringCloud OpenFeign超時控制示例詳解

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

最新評論

襄垣县| 偏关县| 宁化县| 米林县| 梅河口市| 仁布县| 崇礼县| 巢湖市| 浠水县| 麻栗坡县| 昭苏县| 清镇市| 浦城县| 开原市| 玛纳斯县| 玛多县| 江北区| 博白县| 山东省| 淅川县| 富川| 泾源县| 清镇市| 丽江市| 张家口市| 旅游| 黄浦区| 龙南县| 龙陵县| 琼中| 福海县| 石楼县| 容城县| 北票市| 科尔| 勃利县| 南川市| 卢龙县| 同仁县| 共和县| 内乡县|