- 相關(guān)推薦
java方法重載
對于同一個類,如果這個類里面有兩個或者多個重名的方法,但是方法的參數(shù)個數(shù)、類型、順序至少有一個不一樣,這時候局構(gòu)成方法重載。
方法重載示例
public class Test{
public void a( ){
};
public void a( int i){
};
}
說明:在Test類中有兩個方法,名字都相同,都是a。在調(diào)用方法a時,如果不傳參數(shù),則系統(tǒng)會自動調(diào)用第一個方法a,如果傳入一個 int 類型的參數(shù),則系統(tǒng)調(diào)用第二個方法a。
2
public class Test{
public void a(int i){
};
public void a(String j){
};
}
說明:在Test類中有兩個同名的方法a。在調(diào)用方法時,如果傳入一個int類型的參數(shù),則會自動調(diào)用第一個a方法,如果傳入一個String類型的參數(shù),則會自動調(diào)用第二個方法a。
3
public class Test{
public void a(int i,String j){
}
public class a(String j,int i){
}
}
說明:在Test類中有兩個同名的方法。在調(diào)用方法時,如果傳入的第一個參數(shù)類型為int,第二個參數(shù)類型為String,則自動調(diào)用第一個方法a。如果傳入的第一個參數(shù)為String類型,第二個參數(shù)類型為int,則自動調(diào)用第二個方法a。
什么是方法的重載?
方法重載是以統(tǒng)一的方式處理不同數(shù)據(jù)類型的一種手段。
怎樣構(gòu)成方法的重載?
方法名相同, 形參不同。而形參的不同又表示在: 1). 形參的個數(shù)不同 2). 形參的類型不同 3). 形參的順序不同
注意事項
1. 如果兩個方法的返回值不同, 而其他都相同。 這個時候并不構(gòu)成方法的重載。 在編譯的時候會報錯:
示例代碼(錯誤):Test.java
復(fù)制代碼 代碼如下:
/*返回值的不同并不能構(gòu)成方法的重載*/
public class Test {
public static void main(String[] args) {
}
}
class A {
public void f() { //返回值為 void
}
public int f() { //返回值為 int, 其他和上面的f()方法是一樣的
return 1;
}
}
錯誤信息:
復(fù)制代碼 代碼如下:
Test.java:12: error: method f() is already defined in class A
public int f() {
^
1 error
2. 構(gòu)造方法和普通方法一樣, 也可以方法重載。
示例代碼(正確): Test.java
復(fù)制代碼 代碼如下:
/* 方法的重載
* 輸出結(jié)果:
* public A() {} 這個構(gòu)造方法被調(diào)用了
* public A(int i) {} 這個構(gòu)造方法被調(diào)用了
* public void f() {} 這個構(gòu)造方法被調(diào)用了
* public void f(int i) {} 這個構(gòu)造方法被調(diào)用了
*/
public class Test {
public static void main(String[] args) {
A aa1 = new A(); //調(diào)用9行那個方法
A aa2 = new A(1); //調(diào)用13行那個方法
aa1.f(); //調(diào)用17行那個方法
aa2.f(1); //調(diào)用21行那個方法
}
}
class A {
public A() { //9行
System.out.printf("public A() {} 這個構(gòu)造方法被調(diào)用了\n");
}
public A(int i) { //13行
System.out.printf("public A(int i) {} 這個構(gòu)造方法被調(diào)用了\n");
}
public void f() { //17行
System.out.printf("public void f() {} 這個構(gòu)造方法被調(diào)用了\n");
}
public void f(int i) { //21行
System.out.printf("public void f(int i) {} 這個構(gòu)造方法被調(diào)用了\n");
}
}
【java方法重載】相關(guān)文章:
方法重載的條件09-23
什么是方法重載11-15
方法重載與覆蓋的區(qū)別11-04
方法重載和方法重寫的概念和區(qū)別09-06
方法重載和方法重寫的區(qū)別是什么11-16
java技術(shù)的學(xué)習(xí)方法10-07
Java學(xué)習(xí)方法有哪些10-06