基于Java创建一个订单类代码实例
更新时间:2019年12月19日 16:40:50 作者:OLIVER_QIN
这篇文章主要介绍了基于Java创建一个订单类代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
这篇文章主要介绍了基于Java创建一个订单类代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
需求描述
- 定义一个类,描述订单信息
- 订单id
- 订单所属用户(用户对象)
- 订单所包含的商品(不定数量个商品对象)
- 订单总金额
- 订单应付金额:
- 总金额500~1000,打折85折
- 总金额1000~1500,打折80折
- 总金额1500~2000,打折70折
- 总金额超过2000,打折65折
在此基础上,还要看用户的vip等级
- 用户vip等级为:一般会员,则折上折:95
- 用户vip等级为:中级会员,则折上折:90
- 用户vip等级为:高级会员,则折上折:80
代码实现
User.java
package cn.test.logan.day04; /** * 用户类 * 包含信息项目:用户ID、用户名、用户会员等级 * @author QIN * */ public class User { // 用户ID public String CustId; // 用户名 public String CustName; // 用户会员等级 public String CustLevel; public User() { } public User(String CustId,String CustName,String CustLevel) { this.CustId = CustId; this.CustName = CustName ; this.CustLevel = CustLevel ; } }
Product.java
package cn.test.logan.day04; /** * 商品类 * 包含:商品ID、商品名称、商品价格、商品数量 * @author QIN * */ public class Product { // 商品ID public String pId; // 商品名称 public String pName; //商品价格 public float price; // 商品数量 public int number; public Product() { } public Product(String pId, String pName,float price,int number) { this.pId = pId; this.pName = pName; this.price = price; this.number = number; } }
Order.java
package cn.test.logan.day04; import java.util.ArrayList; /** * 订单类 * 包含:订单ID、订单所属用户、订单所包含的商品、订单总金额、订单应付金额 * 500-1000 -------> 8.5折 * 1000-1500 -------> 8折 * 1500-2000 -------> 7折 * 2000以上 -------> 6.5折 * 如果是会员,那么可以基于以上折扣继续折扣 * 一般会员:9.5折 * 中级会员:9折 * 高级会员:8折 * @author QIN * */ public class Order { // 订单ID public String ordId; // 订单所属用户 public User user; // 订单所包含的商品(多个商品,使用ArrayList) public ArrayList<Product> pds; // 订单总金额 public float ordAllAmt; // 订单应付金额 public float payAmt; // 计算总金额的方法 public void setAllAmt() { float sum = 0; for(int i=0;i<this.pds.size();i++) { sum +=this.pds.get(i).price * this.pds.get(i).number; } this.ordAllAmt = sum; } // 计算实付金额 public void setPayAmt() { float tmp = this.ordAllAmt; // 根据总金额进行折扣 if(this.ordAllAmt >= 500 && this.ordAllAmt < 1000) { tmp = this.ordAllAmt * 0.85f; } if(this.ordAllAmt >= 1000 && this.ordAllAmt < 1500) { tmp = this.ordAllAmt * 0.8f; } if(this.ordAllAmt >= 1500 && this.ordAllAmt < 2000) { tmp = this.ordAllAmt * 0.7f; } if(this.ordAllAmt >= 2000) { tmp = this.ordAllAmt * 0.65f; } // 根据会员等级折扣 if(user.CustLevel.equals("一般会员")) { tmp = tmp * 0.95f; } if(user.CustLevel.equals("中级会员")) { tmp = tmp * 0.9f; } if(user.CustLevel.equals("高级会员")) { tmp = tmp * 0.8f; } //计算结果赋值给对象上的payAmt变量 this.payAmt = tmp; } }
OrderTest.java
package cn.test.logan.day04; import java.util.ArrayList; public class OrderTest { public static void main(String[] args) { // 创建订单对象 Order ord = new Order(); ord.ordId="001"; // 创建订单所属用户对象 User u_xm = new User("C001","小明","高级会员"); ord.user = u_xm; // 创建商品对象 ArrayList<Product> list = new ArrayList<Product>(); Product p1 = new Product("P001","杰克琼斯",500.5f,2); Product p2 = new Product("P002","Nick",1000f,1); Product p3 = new Product("P003","Adidas",1200f,2); list.add(p1); list.add(p2); list.add(p3); ord.pds = list ; ord.setAllAmt(); ord.setPayAmt(); System.out.println("订单总金额:" + ord.ordAllAmt); System.out.println("订单应付金额:" + ord.payAmt); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
基于spring-security 401 403错误自定义处理方案
这篇文章主要介绍了基于spring-security 401 403错误自定义处理方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-07-07Spring框架JavaMailSender发送邮件工具类详解
这篇文章主要为大家详细介绍了Spring框架JavaMailSender发送邮件工具类,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2019-04-04Java中实体类为什么要实现Serializable序列化的作用
这篇文章主要介绍了Java中实体类为什么要实现Serializable序列化的作用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-11-11Springboot jar运行时如何将jar内的文件拷贝到文件系统中
因为执行需要,需要把jar内templates文件夹下的的文件夹及文件加压到宿主机器的某个路径下,以便执行对应的脚本文件,这篇文章主要介绍了Springboot jar运行时如何将jar内的文件拷贝到文件系统中,需要的朋友可以参考下2024-06-06
最新评论