找回感觉的练习

  1. 题目

    贷款购买房屋时,支付首付款是一种功能操作,定义在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接口对象,之后利用接口回调完成商业产权房屋首付款的计算。输入测试数据,完成结果的输出。

  2. 源程序

    Test.java

     

     1 /**
     2  * 1.文件功能:输入每平米价格和房屋面积计算住宅产权房屋和商业产权房屋的首付
     3  * 2.成员变量:无
     4  * 3.方法:主方法
     5  */
     6 import java.util.*;
     7 public class Test {
     8 
     9     public static void main(String[] args) {
    10         // TODO Auto-generated method stub
    11         Residence R = new Residence();
    12         
    13         System.out.println("请输入房屋的每平方米的价格和总平方数:");
    14         
    15         Scanner in = new Scanner(System.in);
    16         double a = in.nextDouble();
    17         double b = in.nextDouble();
    18         
    19         System.out.println("住宅产权房屋的首付为:"+R.downPay(a, b)+"元");
    20         
    21         Payment P = new Commercial();
    22         
    23         System.out.println("请输入房屋的每平方米的价格和总平方数");
    24         a = in.nextDouble();
    25         b = in.nextDouble();
    26         
    27         System.out.println("商业产权房屋的首付为:"+P.downPay(a, b)+"元");
    28     }
    29 
    30 }

     

    Payment.java

     

     1 /**
     2  * 1.文件功能:Payment接口
     3  * 2.成员变量:无
     4  * 3.方法:downPay
     5  */
     6 interface Payment {
     7     double downPay(double price,double area);
     8 }

     

    Residence.java

     

     1 /**
     2  * 1.文件功能:实现Payment接口计算住宅产权房屋的首付
     3  * 2.成员变量:无
     4  * 3.方法:重写接口Payment的downPay方法
     5  */
     6 public class Residence  implements Payment {
     7     public double downPay(double price,double area) {
     8         return price*area*0.2;
     9     }
    10 }

     

    Commercial.java

     

     1 /**
     2  * 1.文件功能:实现Payment接口计算商业产权房屋的首付
     3  * 2.成员变量:无
     4  * 3.方法:重写接口Payment的downPay方法
     5  */
     6 public class Commercial implements Payment{
     7     public double downPay(double price,double area) {
     8         return price*area*0.45;
     9     }
    10 }

     

  3. 运行结果

     

posted @ 2019-11-06 11:10  张博涵  阅读(111)  评论(0)    收藏  举报