找回感觉的练习

要求:

贷款购买房屋时,支付首付款是一种功能操作,定义在Payment接口中。住宅产权房屋类和商业产权房屋类均具有支付首付款的功能。依据以上内容,创建一个接口和两个类:

(1)接口Payment,包含:

  • double downPay(double price,double area):一个计算房屋首付款的方法,参数price代表房屋每平方米的价格,area代表房屋的总平方数,即面积。

(2) Payment接口的非抽象使用类——Residence类(住宅产权房屋类),包含:

  • double downPay(double price,double area):重写计算房屋首付款的方法,并将结果返回(住宅产权房屋的首付比例为总房款的20%)。

(3) Payment接口的非抽象使用类——Commercial类(商业产权房屋类),包含:

  • double downPay(double price,double area):重写计算房屋首付款的方法,并将结果返回(商业产权房屋的首付比例为总房款的45%)。

      在主类Test中,创建住宅产权房屋对象,完成住宅产权房屋首付款的计算。再将定义商业产权房屋对象传递给Payment接口对象,之后利用接口回调完成商业产权房屋首付款的计算。输入测试数据,完成结果的输出。

 

代码:

  接口:

    Payment:     

public interface Payment {
    double downPay(double price,double area); //抽象方法
}

  类:

    Residence:

/**
 * 首付比例
 * @ClassName:  Residence  
 * @author Dandelion_Rain
 * @date:   2019年11月6日 下午4:11:31
 * TODO
 */
public class Residence implements Payment {
    public double price;
    public double area;
    //构造方法
    public Residence () {
        
    }
    public Residence (double price, double area) {
        this.setPrice(price);
        this.setArea(area);
    }
    
    public double getPrice() {
        return price;
    }
    public void setPrice(double price) {
        this.price = price;
    }
    public double getArea() {
        return area;
    }
    public void setArea(double area) {
        this.area = area;
    }
    
    public double downPay(double price,double area) {
        return price * area * 0.2;
    }
    
}

    Commercial:

public class Commercial extends Residence{
    public double downPay(double price,double area) {
        return price * area * 0.45;
    }
}

    test5:

import java.util.*;
public class Test5 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Residence residence = new Residence();
        Commercial commercial = new Commercial();
        Scanner input = new Scanner(System.in);
        System.out.println("请输入房屋的面积");
        double a = input.nextDouble();
        System.out.println("请输入每平方米的价格");
        double b = input.nextDouble();
        System.out.println("住宅产权房屋类首付为" + residence.downPay(b, a));
        System.out.println("商业产权房屋类首付为" + commercial.downPay(b, a));
        
    }

}

 

运算结果:

posted on 2019-11-06 16:41  李基民  阅读(126)  评论(0编辑  收藏  举报