最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java實現(xiàn)加油站支付小程序功能(存款與消費)

 更新時間:2025年08月29日 09:43:46   作者:jaysee-sjc  
本文給大家介紹Java實現(xiàn)加油站支付小程序功能(存款與消費),本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧

一、該代碼主要實現(xiàn)以下功能:

1)類結(jié)構(gòu)設(shè)計(基于繼承關(guān)系)

  • 父類Card:封裝了所有卡片的共性屬性(卡號carId、持卡人姓名name、電話phone、余額money)和基礎(chǔ)功能(preStore存款方法、consume消費方法),通過 Lombok@Data等注解自動生成 gettersetter 等方法。
  • 子類GoldCard(金卡):繼承Card,重寫consume方法實現(xiàn) 8 折優(yōu)惠,新增printTicket方法(消費滿 200 元贈送洗車票)。
  • 子類SilverCard(銀卡):繼承Card,重寫consume方法實現(xiàn) 9 折優(yōu)惠。

2)核心業(yè)務(wù)功能

  • 存款功能:通過in方法實現(xiàn),支持用戶輸入存款金額,調(diào)用卡片的preStore方法將金額存入卡內(nèi),并顯示當(dāng)前余額。
  • 消費功能:通過pay方法實現(xiàn),支持用戶輸入消費金額,根據(jù)卡片類型(金卡 / 銀卡)自動應(yīng)用對應(yīng)折扣(8 折 / 9 折):
    • 金卡:消費時計算 8 折后金額,若余額不足則提示失??;若折后金額≥200 元,自動打印洗車票。
    • 銀卡:消費時計算 9 折后金額,若余額不足則提示失敗。

3)程序演示流程

  1. 創(chuàng)建一張金卡和一張銀卡對象,初始化卡號、持卡人信息和初始余額。
  2. 分別為兩張卡執(zhí)行存款操作(用戶輸入存款金額)。
  3. 分別為兩張卡執(zhí)行消費操作(用戶輸入消費金額),展示不同卡片的折扣計算、余額更新及特色功能(如金卡的洗車票)。

二、實現(xiàn)以上功能的代碼如下:

package Demo.pay;
import java.util.Scanner;
public class Test {
    /**
     * 實現(xiàn)加油站支付小程序的主流程
     * 1. 創(chuàng)建金卡和銀卡對象
     * 2. 演示卡片的存款和消費功能
     */
    public static void main(String[] args) {
        //目標:加油站支付小程序。
        //1、創(chuàng)建卡片類,以便創(chuàng)建金卡或銀卡對象,封裝車主的數(shù)據(jù)。
        //2、定義一個卡片父類:Card,定義金卡和銀卡共有的屬性和方法。
        //  定義一個金卡類,繼承Card卡片類:GoldCard,金卡必須重寫消費方法(8折優(yōu)惠),獨有功能打印車票。
        //  定義一個銀卡類,繼承Card卡片類:SilverCard,銀卡必須重寫消費方法(9折優(yōu)惠)。
        //3、辦一張金卡,創(chuàng)建金卡對象,交給一個獨立的業(yè)務(wù)(支付機)來完成:存款,消費。
        //相關(guān)信息
        System.out.println("辦一張金卡:");
        Card goldCard = new GoldCard("123456", "張三", "12345678901", 1000);
        System.out.println("金卡信息:" + goldCard);
        System.out.println("------------------------");
        //存款
        in(goldCard);
        System.out.println("------------------------");
        //消費
        pay(goldCard);
        System.out.println("================================================");
        //  辦一張銀卡,創(chuàng)建銀卡對象,交給一個獨立的業(yè)務(wù)(支付機)來完成:存款,消費。
        //相關(guān)信息
        System.out.println("辦一張銀卡:");
        Card silverCard = new SilverCard("123456", "王五", "12345678901", 5000);
        System.out.println("銀卡信息:" + silverCard);
        System.out.println("------------------------");
        //存款
        in(silverCard);
        System.out.println("------------------------");
        //消費
        pay(silverCard);
    }
    /**
     * 存款機
     * 用于處理卡片存款業(yè)務(wù),可以接受金卡或銀卡進行存款操作
     *
     * @param CardIn 卡片對象,可以是金卡或銀卡
     */
    public static void in(Card CardIn) {
        System.out.println("請輸入存款金額:");
        Scanner sc = new Scanner(System.in);
        Double goldIn = sc.nextDouble();
        CardIn.preStore(goldIn);//存入
        System.out.println("當(dāng)前余額為:" + CardIn.getMoney());
    }
    /**
     * 支付機
     * 用于處理卡片消費業(yè)務(wù),可以接受金卡或銀卡進行消費
     *
     * @param card 卡片對象,可以是金卡或銀卡
     */
    public static void pay(Card card) {
        System.out.println("請輸入消費金額:");
        Scanner sc = new Scanner(System.in);
        double money = sc.nextDouble();
        card.consume(money);//消費
    }
}
package Demo.pay;
//父類
//導(dǎo)包
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
//lombok技術(shù)可以實現(xiàn)為類自動添加getter和setter方法
@Data //@Data注解會自動為類添加getter和setter方法
@AllArgsConstructor
@NoArgsConstructor
/**
 * Card,定義金卡和銀卡共有的屬性和方法。
 * 包含卡的基本信息以及預(yù)存和消費功能
 */
public class Card {
    private String carId;
    private String name;
    private String phone;
    private double money;
    /**
     * 預(yù)存金額到卡中
     * @param money 需要預(yù)存的金額
     */
    public void preStore(double money) {
        this.money += money;
    }
    /**
     * 從卡中消費金額
     * @param money 需要消費的金額
     */
    public void consume(double money) {
        this.money -= money;
    }
}

注意:lombok技術(shù)可以實現(xiàn)為類自動添加gettersetter方法……

步驟如下:

在 IntelliJ IDEA 中使用 Lombok@Data等注解時,通常按Alt+Enter就可以導(dǎo)入,但如果沒有出現(xiàn)預(yù)期的創(chuàng)建選項,通常是因為 Lombok 相關(guān)配置不完整導(dǎo)致的。

可以按照以下步驟排查并解決:

1)設(shè)置

2)構(gòu)建、執(zhí)行、部署 -> 編譯器 -> 注解處理器 -> 啟用注解處理 -> 應(yīng)用即可自動導(dǎo)包。

package Demo.pay;
/**
 * 金卡類,繼承自Card類
 * 金卡享有8折優(yōu)惠,并且消費滿200元可獲得洗車票
 */
public class GoldCard extends Card{
    /**
     * 金卡構(gòu)造函數(shù)
     * @param carId 卡號
     * @param name 持卡人姓名
     * @param phone 持卡人電話
     * @param money 卡內(nèi)余額
     */
    public GoldCard(String carId, String name, String phone, double money) {
        super(carId, name, phone, money);
    }
    /**
     * 金卡消費方法,享受8折優(yōu)惠
     * 如果余額不足則消費失敗
     * 如果消費金額滿200元則贈送洗車票
     * @param money 消費金額
     */
    @Override
    public void consume(double money) {
        System.out.println("您當(dāng)前金卡消費:"+ money);
        System.out.println("優(yōu)惠后的價格:"+ money * 0.8);
        if(getMoney()<money*0.8){
            System.out.println("您的余額是:"+ getMoney()+ ",余額不足!");
            return;
        }
        setMoney(getMoney()-money*0.8);
        System.out.println("您當(dāng)前金卡余額為:"+ getMoney());
        //判斷消費如果大于200,調(diào)用一個獨有的功能,打印洗車票。
        if (money*0.8>=200){
            printTicket();
        }
        else {
            System.out.println("------------------------");
            System.out.println("您沒有消費200元以上,沒有洗車票");
        }
    }
    /**
     * 打印洗車票方法
     * 當(dāng)消費滿200元時調(diào)用此方法
     */
    public void printTicket(){
        System.out.println("------------------------");
        System.out.println("恭喜您,獲得一張洗車票");
    }
}
package Demo.pay;
/**
 * 銀卡類,繼承自Card類
 * 用于處理銀卡用戶的消費邏輯,享受9折優(yōu)惠
 */
public class SilverCard extends Card{
    /**
     * 銀卡構(gòu)造函數(shù)
     * @param carId 卡號
     * @param name 持卡人姓名
     * @param phone 持卡人電話
     * @param money 初始金額
     */
    public SilverCard(String carId, String name, String phone, double money){
        super(carId, name, phone, money);
    }
    /**
     * 銀卡消費方法,享受9折優(yōu)惠
     * @param money 消費金額
     */
    @Override
    public void consume(double money){
        System.out.println("您當(dāng)前銀卡消費:"+ money);
        System.out.println("優(yōu)惠后的價格:"+ money * 0.9);
        // 檢查余額是否充足
        if(getMoney()<money*0.9){
            System.out.println("您的余額是:"+ getMoney()+ ",余額不足!");
            return;
        }
        setMoney(getMoney()-money*0.9);
        System.out.println("您當(dāng)前銀卡余額為:"+ getMoney());
        //更新銀卡的賬號余額
        setMoney(getMoney()-money*0.9);
    }
}

到此這篇關(guān)于Java實現(xiàn)加油站支付小程序功能(存款與消費)的文章就介紹到這了,更多相關(guān)java加油支付小程序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java經(jīng)典面試題最全匯總208道(五)

    Java經(jīng)典面試題最全匯總208道(五)

    這篇文章主要介紹了Java經(jīng)典面試題最全匯總208道(五),本文章內(nèi)容詳細,該模塊分為了六個部分,本次為第五部分,需要的朋友可以參考下
    2023-01-01
  • SpringBoot應(yīng)用部署到外置Tomcat的實現(xiàn)

    SpringBoot應(yīng)用部署到外置Tomcat的實現(xiàn)

    SpringBoot內(nèi)置tomcat使用很方便,本文主要介紹了SpringBoot應(yīng)用部署到外置Tomcat的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2024-07-07
  • Springboot通過lucene實現(xiàn)全文檢索詳解流程

    Springboot通過lucene實現(xiàn)全文檢索詳解流程

    Lucene是一個基于Java的全文信息檢索工具包,它不是一個完整的搜索應(yīng)用程序,而是為你的應(yīng)用程序提供索引和搜索功能。Lucene 目前是 Apache Jakarta 家族中的一個開源項目,也是目前最為流行的基于 Java 開源全文檢索工具包
    2022-06-06
  • Java截取字符串的幾種方法示例

    Java截取字符串的幾種方法示例

    眾所周知java提供了很多字符串截取的方式,下面這篇文章主要給大家總結(jié)介紹了關(guān)于Java截取字符串的幾種方法,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-04-04
  • Java并發(fā)編程同步器CountDownLatch

    Java并發(fā)編程同步器CountDownLatch

    這篇文章主要介紹了Java并發(fā)編程同步器CountDownLatch,文章基于Java并發(fā)編程的相關(guān)資料展開具有一定的參考價值,需要的小伙伴可以參考一下
    2022-04-04
  • Java多線程之生產(chǎn)者消費者模式詳解

    Java多線程之生產(chǎn)者消費者模式詳解

    這篇文章主要為大家詳細介紹了Java多線程之生產(chǎn)者消費者模式,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • java ssm框架實現(xiàn)分頁功能的示例代碼(oracle)

    java ssm框架實現(xiàn)分頁功能的示例代碼(oracle)

    這篇文章主要介紹了java ssm框架實現(xiàn)分頁功能的示例代碼(oracle),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • 最新評論

    婺源县| 康定县| 祥云县| 麻城市| 临泽县| 潮安县| 定结县| 尚义县| 岢岚县| 新乐市| 霍林郭勒市| 樟树市| 武夷山市| 乐都县| 花莲市| 固镇县| 延寿县| 运城市| 漾濞| 澄城县| 澄江县| 新兴县| 临海市| 庆城县| 老河口市| 珲春市| 股票| 阿图什市| 禄丰县| 临清市| 平谷区| 富顺县| 勃利县| 喀什市| 尤溪县| 塔河县| 九龙县| 二连浩特市| 岳普湖县| 习水县| 丰台区|