基于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);
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持无名。
同类资源
- 易语言汇编内核sockt、send、recv+动态创建线程
易语言汇编内核sockt、send、recv+动态创建线程例子源代码,此方法非常直接的防止了HOOK与抓包。...
- DX11窗口创建模块
易语言DX11窗口创建模块例子源代码,沐咿呀窗口创建。...
- mysql简单创建表增删改查
mysql简单创建表增删改查例子源代码,简单例子适合新手。...
- Java支持库多线程调用不崩溃
易语言Java支持库多线程调用不崩溃例子源代码,Java支持库多线程调用方法。...
- 创建文本同行编辑框,自适应窗口大小与编辑框操作事件
创建文本同行编辑框,自适应窗口大小与编辑框操作事件例子源代码。...
- 支持https/自动更新/多文件更新/update/md5比对/自动创建文件夹
易语言支持https/自动更新/多文件更新/update/md5比对/自动创建文件夹例子源代码,在测试启动器中也加入了...
- 基于javaweb的个人网站的毕业设计,包含毕业答辩的PPT文件
基于javaweb的个人网站的毕业设计,包含毕业答辩的PPT文件本文件感兴趣的可以参考一下。...
- MBTI-test创建基于mbti的测试站点
MBTI-test创建基于mbti的测试站点本文件感兴趣的可以参考一下,创建基于MBTI的测试站点。...
- javaWeb汽车销售系统
javaWeb汽车销售系统本文件感兴趣的可以参考一下,只有前台汽车销售,没有后台管理系统。...
- Java Web应用教程,网上购物系统的实现
JavaWeb应用教程,网上购物系统的实现本文件感兴趣的可以参考一下,简单又实用,帮助我入门的好书。...
- JavaWeb课程作业之网上水果商店
JavaWeb课程作业之网上水果商店本文件感兴趣的可以参考一下,含sql文件,使用Eclipse+MySql制作。...
- 关于Java毕业设计作品
关于Java毕业设计作品本文件感兴趣的可以参考一下,分布式项目实战所有视频。...