某商场为用户设计一套积分系统,用以根据用户不同的级别,基于不同的规则计算积分: 计算规则如下: 1. VIP用户,消费1元,积分:按照消费金额*2 计算积分 向上取整 2. 普通用户 Level>=2级, 积分: 按照消费金额*1.5 计算,向上取整。 3. 普通用户Level<2级,积分: 按照消费金额 * 1计算,向上取整 用户等级的计算规则: 1. Vip用户默认级别为5: 2. 普通用户消费金额 0~20000, level为1 3. 普通用户消费金额 20000~30000, level为2 4. 普通用户消费金额 30000~40000, level为3 5. 普通用户消费金额 40000~50000, level为4 请阅读如下代码,补齐缺少的代码片段。
public 【1】ILevelCalculator { //计算积分 public Integer calcIntegral(float amount); }
public abstract class BaseCustomer implements ILevelCalculator { private String name; //用户姓名 private float amount;//消费金额 private int level;//用户等级 private int integral;//积分
public BaseCustomer(String name, int level) { this.name = name; this.level = level; this.integral = 0; }
public Integer updateIntegral(Integer newAddedIntegral) { this.integral += newAddedIntegral; return this.integral; }
public void updateAmount(float amount) { this.amount += amount;
//vip用户直接跳过level设置 if (this.level>4) { System.out.println("vip customer"); } else if (this.amount>40000) { this.level = 4; } else if (this.amount>30000) { this.level = 3; } else if (this.amount > 20000) { this.level = 2; } else { this.level = 1; }
//计算新增的积分 Integer integral = calcIntegral(amount); this.updateIntegral(integral); } //getter/setter方法省略 }
public class VipCustomer 【2】 BaseCustomer { public 【3】(String name) { super(name, 5); }
@Override public Integer calcIntegral (float amount) { return (int)Math.ceil(amount *2); } }
public class CommonCustomer extends BaseCustomer { public CommonCustomer(String name, int level) { super(name, level); }
@Override public Integer calcIntegral(float amount) { return (this.getLevel()>=2) ? (int)Math.ceil(amount*1.5) : (int)Math.ceil(amount*1); } }
测试方法: public static void main(String[] args) { BaseCustomer vipCustomer = new VipCustomer("vip customer1"); BaseCustomer commonCustomer = new CommonCustomer("common1", 1); vipCustomer.updateAmount(10000); commonCustomer.updateAmount(25000);
System.out.println("VipCustomer积分为:" + vipCustomer.getIntegral()); System.out.println("CommonCustomer积分为:" + commonCustomer.getIntegral()); }
1. 选择合适的Java关键字() A. class B. interface C. abstract D extends
2. 选择合适的Java关键词: () A. Implements B. abstract C. extends D. static
3. 选择合适的方法名:() A. VipCustomer B. updateAmount C. calcIntegral D. BaseCustomer
4. VipCustomer的积分是多少() A. 20000 B. 50000 C. 10000 D 37500
5. CommonCustomer的积分是多少() B. 20000 B. 50000 C. 10000 D 37500
|