新手学习Java笔记(二)方法重载的简单例子

新手学习Java笔记(二)

例子:新建复数类,包括show和add方法

刚学习Java时,若要表示复数,会想到创建两个Double,用Double的方法完成计算,用字符串*Double + “+” + Double + ”i“*显示 。

public class Main {
    public static void main(String[] args) {
            Complex_num f1 = new Complex_num(4,1);
            Complex_num f2 = new Complex_num(7,0);
            Complex_num f3;

			Double c = 2.5;

            f3 = f1.add(f2);
            f3 = f3.add(c);
            
            f3.show();
    }
}

class Complex_num{
    double re,im;

    Complex_num(double re,double im){
        this.re = re;
        this.im = im;
    }

    Complex_num(){
        this.re = 0;
        this.im = 0;
    }

    void show(){
        System.out.println(re+"+"+im+"i");
    }

    Complex_num add(Complex_num f){
        Complex_num f1 = new Complex_num();

        f1.re = re + f.re;
        f1.im = im + f.im;

        return f1;
    }

	Complex_num add(Double c){
        Complex_num f1 = new Complex_num();

        f1.re = re + c;
        f1.im = im;

        return f1;
    }
}

方法重载包括对构造方法和类方法的重载

重载可以理解为重新再定义方法以满足不同参数的需求

//类方法重载
//复数加法包括复数+复数,复数+实数
 Complex_num add(Complex_num f){
        Complex_num f1 = new Complex_num();

        f1.re = re + f.re;
        f1.im = im + f.im;

        return f1;
    }

	Complex_num add(Double c){
        Complex_num f1 = new Complex_num();

        f1.re = re + c;
        f1.im = im;

        return f1;
    }
//构造方法重载
Complex_num(double re,double im){
        this.re = re;
        this.im = im;
    }

    Complex_num(){
        this.re = 0;  //
        this.im = 0;  //或直接写this(0,0);
    }
//提供一个默认值

注意:
方法重载时,两个方法的名称必须相同,不同的部分可以是参数类型、参数数量以及参数顺序中的至少一个。而仅是返回值不同无法构成重载。

Java的编译器会在调用时候检查参数选择方法

你可能感兴趣的:(#,面向对象程序设计导论)