方法重載的使用與練習


要求:1.同一個類中 2.方法名必須相同(如下列代碼中的setSum
3.方法的參數列表(下述中getSum之后括號中的東西)不同Ⅰ.參數的個數不同(setSum之后的括號里定義的參數的數目不一樣)
Ⅱ.參數類型不同(setSum后面的括號中定義的類型有些是int有些是double這個類型不同),這些里面只要有一個不同就是重載
Ⅲ.方法的重載與方法的返回值類型沒有關系(雖然(4)方法定義的是void類型,但是還是和(1)(2)(3)是重載,也就是說
setSum之前的方法類型無論是什么樣,只要后面的符合上述條例都是重載)

public class TestOverload {
    //定義兩個int變量的和(1)
    public int getSum(int i,int j){
        return i+j;
    }
    //和上面的方法名不同,不是重載,雖然可能輸出的值相同,但也不是同一個方法
    public int getSum1(int i,int j){
        return i+j;
    }
    //定義三個int變量的和(2)
    public int getSum(int i,int j,int k){
        return i+j+k;
    }
    //雖然int變成了void,但是和上面的方法是同一個方法
    public void getSum(int i,int j,int k){
        System.out.println(i+j+k);
    }
    //定義兩個double型數據的和(3)
    public double setSum(double i,double j){
        return i+j;
    }
    //定義三個double型數組的和(4)
    public void setSum(double i,double j,double k){
        System.out.println(i+j+k);
    }
    /*也可以是public double setSum(double i,double j,double k){
        return i+j+k;
    }但是為了了解重載的使用,就采用了上述方法*/
    //以下兩個方法雖然只是變量值類型的順序換了一下,但是符合要求,也構成重載
    public void method1(String str,int i){

    }
    public void method1(int i,String str){

    }
}

 

編寫程序:定義三個重載方法並調用,方法名為mOL
三個方法分別接收一個int參數、兩個int參數、一個字符串參數。分別執行平方運算並執行結果
相乘並輸出結果,輸出字符串信息
在主類main()方法中分別用參數區別調用三個方法

public class TestOverload {
    public static void main(String[] args) {
        TestOverload t=new TestOverload();
        t.mOL(2);
        t.mOL(2,5);
        t.mOL("哈哈");
    }
    public void mOL(int i){
        int i1=i*i;
        System.out.println(i1);
    }
    public void mOL(int i,int j){
        int i1=i*j;
        System.out.println(i1);
    }
    public void mOL(String str){
        System.out.println(str);
    }
}


重載輸出可以自動能識別調用的是哪個方法

定義三個重載方法max()
第一個方法求兩個int值中的最大值
第二個方法求兩個double中的最大值
第三個方法求三個double中的最大值,並且分別調用三個方法

public class TestOverload {
    public static void main(String[] args) {
        TestOverload t=new TestOverload();
        int i1=t.max(3,4);
        System.out.println("兩個int中的最大值是:"+i1);
        double i2=t.max(3.1,3.2);
        System.out.println("兩個double中的最大值是:"+i2);
        double i3=t.max(3.1,3.2,3.3);
        System.out.println("三個double中的最大值是:"+i3);
    }
    public int max(int i,int j){
        int a=(i>j)?i:j;
        return a;
    }
    public double max(double i,double j){
        double a=(i>j)?i:j;
        return a;
    }
    public double max(double i,double j,double k){
        double a=(max(i,j)>k)?max(i,j):k;//調用上一個方法
        return a;
    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM