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.pswp.cn/news/533045.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/533045.shtml
英文地址,請注明出處:http://en.pswp.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…