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

關于Java如何正確地實現方法重載詳解

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

一. 方法重載

1. 概念

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

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

2. 要求

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

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

2. 與返回值、訪問修飾符無關。

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

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

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

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

二. 代碼案例

1. 普通方法重載

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

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

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

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

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

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

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

2. 構造方法重載

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

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

    // 汽車顏色
    private String color;

    // 汽車價格
    private double price;

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

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

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

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

我們在構造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);
    }
}

這樣通過傳入不同的參數,就可以構造出不同的汽車對象。

三. 結語

至此,就把方法重載相關的內容講解完畢了,現在你知道哪些情況屬于方法重載了嗎?方法重載要點如下:

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

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

相關文章

  • Springboot 如何使用@Async整合線程池

    Springboot 如何使用@Async整合線程池

    這篇文章主要介紹了Springboot 使用@Async整合線程池的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 簡單講解Java的Future編程模式

    簡單講解Java的Future編程模式

    這篇文章主要介紹了Java的Future編程模式,包括對異步和并發(fā)的一些設計思維,需要的朋友可以參考下
    2015-11-11
  • Spring事務管理詳細講解

    Spring事務管理詳細講解

    事務的作用就是為了保證用戶的每一個操作都是可靠的,事務中的每一步操作都必須成功執(zhí)行,只要有發(fā)生異常就?回退到事務開始未進行操作的狀態(tài)。事務管理是Spring框架中最為常用的功能之一,我們在使用Spring?Boot開發(fā)應用時,大部分情況下也都需要使用事務
    2022-10-10
  • 解決mysql字符串類型的數字排序出錯:cast(year as signed)

    解決mysql字符串類型的數字排序出錯:cast(year as signed)

    這篇文章主要介紹了解決mysql字符串類型的數字排序出錯問題 :cast(year as signed),如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 如何在Java中優(yōu)雅地使用正則表達式詳解

    如何在Java中優(yōu)雅地使用正則表達式詳解

    這篇文章主要給大家介紹了關于如何在Java中優(yōu)雅地使用正則表達式的相關資料,正則表達式就是一個字符串,但和普通的字符串不同的是,正則表達式是對一組相似字符串的抽象,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-02-02
  • Springmvc完成ajax功能實例詳解

    Springmvc完成ajax功能實例詳解

    在本篇文章里小編給大家整理了關于Springmvc完成ajax功能實例內容,有需要的朋友們可以參考學習下。
    2019-09-09
  • 詳解Spring MVC的攔截器與異常處理機制

    詳解Spring MVC的攔截器與異常處理機制

    這篇文章主要為大家詳細介紹了Spring MVC的攔截器與異常處理機制,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • Java二維數組計算集合總結

    Java二維數組計算集合總結

    本篇文章給大家整理了關于Java二維數組計算集合的內容總結,有需要的讀者們可以參考下。
    2018-02-02
  • Java集合的定義與Collection類使用詳解

    Java集合的定義與Collection類使用詳解

    這篇文章主要介紹了Java集合的定義及Collection工具類使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2022-11-11
  • Springboot定時任務Scheduled重復執(zhí)行操作

    Springboot定時任務Scheduled重復執(zhí)行操作

    這篇文章主要介紹了Springboot定時任務Scheduled重復執(zhí)行操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09

最新評論