Java是一種面向?qū)ο蟮木幊陶Z(yǔ)言,在Java中,方法是面向?qū)ο缶幊痰闹匾M成部分。Java中的方法可以通過(guò)過(guò)載和重載來(lái)完成。盡管過(guò)載和重載兩個(gè)概念類(lèi)似,但還有一些小差別。
Java過(guò)載是指在一個(gè)類(lèi)中定義了一個(gè)以上的方法,它們有相同的名稱(chēng),但參數(shù)列表不同。Java在調(diào)用方法時(shí)會(huì)根據(jù)參數(shù)類(lèi)型和數(shù)量的不同自動(dòng)選擇合適的方法。看下面的例子:
public class OverloadDemo { public void print() { System.out.println("無(wú)參print方法"); } public void print(int x) { System.out.println("帶一個(gè)參數(shù)的print方法, 參數(shù)值為:" + x); } public void print(String x) { System.out.println("帶一個(gè)參數(shù)的print方法, 參數(shù)值為:" + x); } // 測(cè)試 public static void main(String[] args) { OverloadDemo demo = new OverloadDemo(); demo.print(); demo.print(5); demo.print("Hello, Java!"); } }
在上面的例子中,我們創(chuàng)建了一個(gè)名為OverloadDemo的類(lèi),并定義了三個(gè)print方法。第一個(gè)print方法不帶參數(shù),第二個(gè)print方法帶一個(gè)int類(lèi)型的參數(shù),第三個(gè)print方法帶一個(gè)String類(lèi)型的參數(shù)。當(dāng)我們調(diào)用print方法時(shí),Java會(huì)根據(jù)參數(shù)數(shù)量和類(lèi)型的匹配自動(dòng)選擇最適合的方法。
Java重載是指在一個(gè)類(lèi)中定義一個(gè)與之前定義的方法名稱(chēng)相同的方法,但參數(shù)列表不同。Java重載與Java過(guò)載不同,參數(shù)列表可能包括參數(shù)類(lèi)型、數(shù)量和順序。看下面的例子:
public class OverloadDemo { public int add(int x, int y){ return x + y; } public double add(double x, double y){ return x + y; } public int add(int x, int y, int z){ return x + y + z; } // 測(cè)試 public static void main(String[] args) { OverloadDemo demo = new OverloadDemo(); int a = demo.add(1, 2); double b = demo.add(1.1, 2.2); int c = demo.add(1, 2, 3); System.out.println("a=" + a + ", b=" + b + ", c=" + c); } }
在上面的例子中,我們定義了一個(gè)名為add的類(lèi),并定義了三個(gè)add方法,使用不同的參數(shù)數(shù)量和類(lèi)型定義。在測(cè)試代碼中,我們使用不同的參數(shù)調(diào)用了三個(gè)add方法。Java會(huì)根據(jù)參數(shù)的數(shù)量和類(lèi)型選擇最適合的方法,并返回正確的值。