5、构造方法的重载和调用

2021-03-18  本文已影响0人  爱学习的代代

之前学过了方法的重载,既然构造方法也是方法,那同样也是可以有重载方法的。

代码如下:

<TestMerchandiseV2.java>

MerchandiseV2 v = new MerchandiseV2(1,"床单",100, 50, 30);
        v.describe();



        MerchandiseV2 v1 = new MerchandiseV2(2, "被罩", 50, 30);
        v1.describe();



        MerchandiseV2 v2 = new MerchandiseV2();
        v2.describe();



<MerchandiseV2.java>


public MerchandiseV2(int id, String name, int count, double soldPrice, double purchasingRrice ) {
        this.id = id;
        this.name = name;
        this.count = count;
        this.soldPrice = soldPrice;
        this.purchasingRrice = purchasingRrice;
    }

//  无进价参数的重载方法
    public MerchandiseV2(int id, String name, int count, double soldPrice) {
        this(id, name, count, soldPrice, soldPrice * 0.8);
    }

//  无任何参数的重载方法
    public MerchandiseV2() {
        this(1000, "未知", 2, 0.1, 0.01);
    }


    public void describe() {
        System.out.println("当前商品的名字是:" + this.name + " 库存个数是:" + this.count + " 进价是:" + this.purchasingRrice + "元 " + "售价是:" + this.soldPrice + "元 " + "销售一个的毛利润是: " + (this.soldPrice - this.purchasingRrice));
    }


运行结果:


image.png

二、几点说明
1.构造方法同样也可以相互调用,在A方法内调用B构造方法需要是A方法体第一行调用。

  1. 构造方法不可以自己调用自己,否则会出现死循环。
  2. 当构造方法未执行完成时,不可使用成员变量 this. name
  3. 调用构造方法使用 this() 来调用
  4. 重载提供了多种初始对象的方式,同时可以简化重复代码
上一篇 下一篇

猜你喜欢

热点阅读