java订单类_基于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 pds;

// 订单总金额

public float ordAllAmt;

// 订单应付金额

public float payAmt;

// 计算总金额的方法

public void setAllAmt() {

float sum = 0;

for(int i=0;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 list = new ArrayList();

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);

}

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持聚米学院。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/533045.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java请假审批怎么实现_java实现请假时间判断

笔记:需求分析:每周上班6天夏季早上8:30-12:00下午14:00-17:30冬季早上8:30-12:00下午14:30-18:00请假最低为半天按照上午8:00-12:00,下午14:00-18:00计算,包括了夏季和冬季时间,规律分布如下public String getDouble(HttpServletRequest request) throws ParseException {//参…

mariadb mysql 5.6_MySQL / MariaDB 5.5 升级到 MySQL 5.6

RHEL 及 CentOS 7 默认的资库系统是 MariaDB 5.5 (等同 MySQL 5.5), 虽然现时 MySQL 最新版是 5.7, 但一般上升级都建议一级一级上, 而 MySQL 5.6 比 5.5 也提高了效能及提供更多功能, 以下是在 RHEL 及 CentOS 从原来的 MySQL 5.5 或 MariaDB 5.5, 升级到 MySQL 5.6 的步骤。1…

iText报表Java_(例)Java生成PDF报表 iText

// 导入&#xff29;&#xff2f;库类import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.util.ArrayList;// 导入 &#xff30;&#xff2f;&#x…

mysql update修改数据_MySQL UPDATE:修改数据(更新数据)

在 MySQL 中&#xff0c;可以使用 UPDATE 语句来修改、更新一个或多个表的数据。UPDATE 语句的基本语法使用 UPDATE 语句修改单个表&#xff0c;语法格式为&#xff1a;UPDATE SET 字段 1值 1 [,字段 2值 2… ] [WHERE 子句 ][ORDER BY 子句] [LIMIT 子句]语法说明如下&#xf…

java堆内存 数据结构_JAVA内存区域

首先解释下内存溢出和内存泄露之间的区别&#xff0c;为后面的学习做些铺垫&#xff1a;1、内存溢出和内存泄露的区别和联系内存溢出 out of memory&#xff1a;是指程序申请内存时&#xff0c;没有足够的内存供申请者使用&#xff0c;或者说&#xff0c;给了你一块存储int类型…

java jsp的指令_[javaEE] jsp的指令

jsp的指令&#xff1a;jsp的指令(directive)是为jsp引擎而设计的&#xff0c;他们并不直接产生任何可见输出&#xff0c;而是告诉引擎如何处理jsp页面中的其他部分页面头部的page指令pageEncoding"utf-8"%>配置错误页面&#xff1a;web.xml500/500.jsp404/404.jsp…

JAVA不能满屏_java – 全屏幕视频,不拉伸视频

像这样&#xff0c;你可以自己设置视频的属性。使用SurfaceView(给你更多的视图控制)&#xff0c;将其设置为fill_parent以匹配整个屏幕android:orientation"vertical"android:layout_width"match_parent"android:layout_height"fill_parent">…

java异常标记_java.lang.RuntimeException:错误:0D0680A8:asn1编码例程:ASN1_CHECK_TLEN:错误的标记...

我收到此错误(在标题中).我不确定为什么,请帮忙.代码如下&#xff1a;public static String decryptRSA(Context mContext, byte[] message) throws Exception {InputStream in mContext.getResources().openRawResource(R.raw.publicrsakey);X509EncodedKeySpec x509EncodedK…

正版我的世界怎么下载java_mcjava正版下载-mc我的世界java安卓正式版极速下载v1.0.1 - 趣趣手游网...

mc我的世界java安卓正式版带你体验最为精彩的多人联机对战玩法&#xff0c;游戏专为java系列打造&#xff0c;在游戏的部分特性上有着各种的提升&#xff0c;以及各种专属的表达&#xff0c;比基岩版能多一些不同的玩法&#xff0c;在这里有着各种不同的玩法以及模式等待你的加…

java原子整数_多线程(四、原子类-AtomicInteger)

案例10个线程并发累加一个整数&#xff0c;每个线程累加1000&#xff0c;保证线程安全Unsafe类&#xff0c;来源于sun.misc包。该类封装了许多类似指针操作&#xff0c;可以直接进行内存管理、操纵对象、阻塞/唤醒线程等操作。package com.jane;import java.util.ArrayList;imp…

java 新建菜单选项_请完成下列Java程序:创建一个下拉式菜单,菜单项包括3个CheckboxM..._考试资料网...

请完成下列Java程序&#xff1a;创建一个下拉式菜单&#xff0c;菜单项包括3个CheckboxMenultem(复选框)&#xff0c;一条分割线和一个Exit项。要求打开或关闭复选框时&#xff0c;确定是哪个被切换&#xff0c;是开还是关&#xff0c;并输出它的状态&#xff1b;选择Exit项能够…

adurnio 单片机_单片机20~200A大电流检测电路设计 用AD实现 带原理图,源代码,proteus仿真文件...

//------------------------------51单片机头文件#include//各数字的数码管段码(共阴)unsigned char code DSY_CODE[]{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //数码管显示数组{0,1,2,3,4,5,6,7,8,9}sbit CLKP3^3; //时钟信号sbit STP3^6; //启动信号,由…

java 极客_Java极客思维

​开篇介绍大家好&#xff0c;公众号【Java极客思维】近期会整理一些Java高频面试题分享给小伙伴&#xff0c;也希望看到的小伙伴在找工作过程中能够用得到&#xff01;本章节主要针对Java一些消息中间件高频面试题进行分享。通知&#xff1a;公众号【Java极客思维】正在送书福…

java拼三级魔方_魔方秘籍(详细解法)《三阶》

魔方根据视频理解&#xff1a;上 下 左 右先将白面变好&#xff1a;(1).变一个白十字(如图所示)(2).转好以后检查十字的四个角的颜色(蓝绿红橙)与旁边面上的中心块的颜色是否相同。(有两个相同的时&#xff0c;如果它们相邻&#xff0c;就一个放在后面&#xff0c;一个放在左面…

php怎么实现点卡充值,利用自动发卡程序的点卡充值传奇脚本

首先&#xff1a;自动售卡 玩家购买到卡密 在游戏输入卡密领取元宝下面是NPC脚本&#xff1a;[main]&#xff01;这里是点卡充值平台&#xff01;\\\ \ \\[InPutString18]#IFCHECKCODELIST ..\QuestDiary\卡号列表\5.txt#actCLEARCODELIST ..\QuestDiary\卡号列表\5.txtGAMEGOL…

php转换ofd文件格式,一种OFD格式文档支持脚本的方法与流程

本发明涉及电子文档格式的处理技术&#xff0c;特别涉及一种OFD格式文档支持脚本的方法。背景技术&#xff1a;OFD是一种版式文档格式&#xff0c;全称为开放式版式文档(Open Fixed-layout Document)&#xff0c;是国家版式文档格式规范。版式文档是电子文件应用的一个重要门类…

php成品代码,PHP代码

日期当日date(Y-m-d")date(Y-m-d 00:00:00)取日期&#xff1a;年 月 日date("Y", strtotime($startday))date("m", strtotime($startday))date("d", strtotime($startday))上月 下月$last_mont_first_date date(Y-m-01 00:00:00,strtotime…

tp框架中引入php文件,Laravel框架及ThinkPHP框架超级简单的公共文件引入(保留变量)...

为什么要把两个框架放在一起来说呢&#xff1f;额。。。因为TP5.1.x与Laravel实在是太像了&#xff0c;本文主要讲述关于大家顶部及底部文件引入的问题。但是如果顶部和尾部只是单纯的html代码还好说,但是里面通常有变量赋值和循环遍历以及判断等逻辑&#xff0c;这样就带来了比…

pHp30充电宝能用快充吗,65W快充 30分钟充满电 是时候淘汰充电宝了吗?

在过去的一年里&#xff0c;手机快充技术有了新的突破&#xff0c;OPPO推出了65W快充。无独有偶&#xff0c;联想拯救者电竞手机的预热宣传中&#xff0c;号称搭载90W快充。有评测称&#xff0c;使用65W快充&#xff0c;30分钟可以充满一块4000mAh容量的电池&#xff0c;使用90…

php+mockjs,mockjs的常用方法分享

本文主要和大家分享mockjs的常用方法&#xff0c;结合文字和代码和大家讲解&#xff0c;希望能帮助到大家。一.mock.mock()根据数据模板生成模拟数据。更关键的是&#xff0c;我们发起Ajax请求的时候要能够接收到这些数据。这就是Mock.mock()的作用啦&#xff01;Mock.mock( ru…