黑马程序员技术交流社区

标题: 面向对象点招题之 支付宝打折 难度系数4 [打印本页]

作者: wolfking0608    时间: 2016-10-8 21:25
标题: 面向对象点招题之 支付宝打折 难度系数4
package com.heima.study;

import java.util.Random;
import java.util.Scanner;

public class 点招6 {

        /**
         * 题目:定义一个抽象类,类名是Payment,定义抽象方法,有参,返回值类型为double,定义一个类Zfb继承抽象类,随机给价格打5-8折,
         * 定义一个Cash类继承Payment
         * ,定义一个Person类,创建静态方法,参数为String,键盘录入支付方式和金额,如果是Zfb就输出支付方式和折扣后的价格
         * ,如果是现金就输出支付方式和金额
         */
        public static void main(String[] args) {
                Scanner sc = new Scanner(file:///C:\Users\haier\AppData\Local\Temp\%W@GJ$ACOF(TYDYECOKVDYB.pngSystem.in);
                System.out.println("请输入付款方式,以及金额");
                String s1 = sc.nextLine();
                String[] arr = s1.split(",");
                double x = Integer.parseInt(arr[1]);

                Person p = new Person();
                Payment p1 = p.buy(arr[0]);
                double b = p1.pay(x);
                if (arr[0].equals("Zfb")) {
                        System.out.println("支付方式:" + arr[0] +"\r\n"+"打"+b/x +"折"+"\r\n"+ "折后价格:"+ b);

                }else {
                        System.out.println("支付方式:" + arr[0]+ "支付金额:"+b);
                }

        }

}

abstract class Payment {// 定义抽象类
        public abstract double pay(double money);
}

class Zfb extends Payment {
        Random r = new Random();

        public double pay(double money) {
                return money * (r.nextInt(4) + 5) * 0.1;
        }
}

class Cash extends Payment {
        public double pay(double money) {
                return money;
        }
}

class Person {
        public static Payment buy(String s) {

                if (s.equals("Zfb")) {

                        return new Zfb();
                } else {
                        return new Cash();
                }
        }
}



作者: 马文丽    时间: 2016-10-8 22:05
存起来看看,感谢分享
作者: 渔夫的星辰    时间: 2016-10-8 23:17
赶脚 好难
作者: 112345666    时间: 2016-10-9 00:05
感觉你是拷贝我的?不信你去看看




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2