• 找回感觉的练习


    一:题目

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

    二:源程序

    1.接口Payment

    /**
     * 1.创建接口Payment
     * 2.声明抽象方法downPay
     * 3.实现该接口的类都可以使用该方法
     * */
    package cn.edu.ccut.gj;
    
    public interface Payment {//接口Payment
        
        public abstract double downPay(double price,double area);//房屋首付款的方声明
    
    }

    2.Residence类

    /**
     * 1.主类Residence实现Payment接口,面积方法downPay()
     * 2.downPay()重写接口的方法
     * 3.downPay()方法重写了接口的方法,根据价钱*面积*0.2求得首付款
     * */
    package cn.edu.ccut.gj;
    
    public class Residence implements Payment{//实现接口Payment
        
        public double downPay(double price,double area) {//实现接口中的方法
            return price*area*0.2;//求得住宅产权房屋首付款
        }
    
    }

    3.Commercial类

    /**
     * 1.主类Commercial实现Payment接口,面积方法downPay()
     * 2.downPay()重写接口的方法
     * 3.downPay()方法重写了接口的方法,根据价钱*面积*0.45求得首付款
     * */
    package cn.edu.ccut.gj;
    
    public class Commercial implements Payment{//实现接口Payment
    
        public double downPay(double price,double area) {//实现接口中的方法
            return price*area*0.45;//求得商业产权房屋首付款
        }
    
    }

    4.Test类

    /**
     * 1.主类Test,主方法main
     * 2.变量price用来接收用户输入的价格, 创建宅产权房屋对象,商业产权房屋对象,输出首付价格
     * 3.定义商业产权房屋对象传递给Payment接口对象pay,通过接口回调计算商业产权房屋首付款并输出
     * */
    package cn.edu.ccut.gj;
    import java.util.Scanner;
    public class Test {
        
        public static void main(String[] args) {
            Scanner in = new Scanner(System.in);
            Residence re = new Residence();//创建宅产权房屋对象
            System.out.println("请输入每平方价格:");
            double price = in.nextDouble();
            System.out.println("请输入平方面积:");
            double area = in.nextDouble();
            System.out.println("住宅产权房屋首付款为:"+re.downPay(price, area));//输出宅产权房屋首付价格
            Payment pay = new Commercial();//定义商业产权房屋对象传递给Payment接口对象pay
            System.out.println("商业产权房屋首付款为:"+pay.downPay(price, area));//输出商业产权房屋首付价格
    
        }
    
    }

    三:运行结果

     

  • 相关阅读:
    window端口被占用
    webstorm中关闭烦人Eslint语法检查
    STM32 printf 函数原型
    Memset、Memcpy、Strcpy 的作用和区别(转)
    SMD贴片元件的封装尺寸(转)
    Windows Phone开发工具初体验(转载)
    Open Cell(转载)
    标题:常用贴片元件封装(转载)
    关于TV Dongle的功能设计和思考【图】(转载)
    图片预览加上传遇到的一系列问题
  • 原文地址:https://www.cnblogs.com/zyg777/p/11809064.html
Copyright © 2020-2023  润新知