日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

java實現(xiàn)簡單的ATM項目

瀏覽:12日期:2022-08-21 18:46:50

本文實例為大家分享了java實現(xiàn)簡單的ATM項目的具體代碼,供大家參考,具體內(nèi)容如下

首先要了解的是,這個ATM項目本身是一個輕量級的項目,只為了完成一些ATM具備的一些方法,并非是真正完成一個ATM的全部功能和需求

那么在這個輕量級的ATM項目中,我將完成添加儲蓄賬號,添加信用賬戶,提款,取款等基本功能。

適合新手查看,需要掌握java的繼承,多態(tài),封裝等基本技術(shù)能力

那么,首先創(chuàng)建如下的對象類:Account(賬戶類),Bank(銀行類),CreditAccount(信用賬戶),SavingAccount(儲蓄賬戶類);

大家首先應(yīng)該搞清楚,這些類文件中之間的關(guān)系,每個類之間需要用到什么樣的方法;

那么我們先填寫Account類

package com.atm.entity; /** * 銀行賬戶類 */public abstract class Account { /** * 賬戶帳號 */ private String accountId; /** * 賬戶姓名 */ private String accountName; /** * 賬戶密碼 */ private String accountPwd; /** * 賬戶余額 */ private double accountBalance; /** * 賬戶身份證號 */ private String accountPersonId; /** * 賬戶郵箱 */ private String accountEmail; /** * 賬戶聯(lián)系電話 */ private long accountTelno; public Account() { } public Account(String accountName, String accountPwd, String accountPersonId, long accountTelno, String accountEmail) { this.accountName = accountName; this.accountPwd = accountPwd; this.accountPersonId = accountPersonId; this.accountTelno = accountTelno; this.accountEmail = accountEmail; } public String getAccountId() { return accountId; } public void setAccountId(String accountId) { this.accountId = accountId; } public String getAccountName() { return accountName; } public void setAccountName(String accountName) { this.accountName = accountName; } public String getAccountPwd() { return accountPwd; } public void setAccountPwd(String accountPwd) { this.accountPwd = accountPwd; } public double getAccountBalance() { return accountBalance; } public void setAccountBalance(double accountBalance) { this.accountBalance = accountBalance; } public String getAccountPersonId() { return accountPersonId; } public void setAccountPersonId(String accountPersonId) { this.accountPersonId = accountPersonId; } public String getAccountEmail() { return accountEmail; } public void setAccountEmail(String accountEmail) { this.accountEmail = accountEmail; } public long getAccountTelno() { return accountTelno; } public void setAccountTelno(long accountTelno) { this.accountTelno = accountTelno; } /** * 存款 * * @param money * 存款金額 * @return 返回賬戶余額 */ public double depoist(double money) {// money 形式參數(shù) if (money > 0) this.accountBalance += money; return this.accountBalance; } /** * 取款 * * @param money * 取款金額 * @return 返回賬戶余額 */ public abstract double withdraw(double money); /** * 轉(zhuǎn)賬 * * @param anotherAccount * 轉(zhuǎn)賬的對方賬戶 * @param money * 轉(zhuǎn)賬金額 * @return 返回當(dāng)前賬戶的余額 */ public double tranferAccount(Account anotherAccount, double money) {// 形參 anotherAccount.accountBalance += money; this.accountBalance -= money; return this.accountBalance; } }

之后填寫信用賬戶類CreditAccount;我們應(yīng)該明白,他是繼承Account類的,但是,他又需要擁有自身獨立的屬性,我們可以添加一個最高透支額度的屬性這樣來實現(xiàn)代碼

/** * 信用賬戶 * * */public class CreditAccount extends Account { //成員變量 private double maxOverdraw;//最高透支額度 //構(gòu)造函數(shù) public CreditAccount(String accountName,String accountPwd,String accountPersonId,long accountTelno,String accountEmail,double maxOverdraw){ super( accountName, accountPwd, accountPersonId, accountTelno, accountEmail); this.maxOverdraw = maxOverdraw; } //set,get public void setMaxOverdraw(double maxOverdraw ){ this.maxOverdraw = maxOverdraw; } public double getMaxOverdraw(){ return this.maxOverdraw; } @Override public double withdraw(double money) { // TODO Auto-generated method stub return 0; } }

同理 填寫儲蓄賬戶(SavingAccount)類文件

package com.atm.entity;/** * 儲蓄賬戶 * * */public class SavingAccount extends Account { public SavingAccount(String accountName,String accountPwd,String accountPersonId,long accountTelno,String accountEmail){ super( accountName, accountPwd, accountPersonId, accountTelno, accountEmail); } @Override public double withdraw(double money) { // TODO Auto-generated method stub if(money <= getAccountBalance()){ } else System.out.println('賬戶余額不足'); return getAccountBalance(); } }

最重要的是填寫B(tài)ank類的內(nèi)容,在這個類中,我們要完成注冊,產(chǎn)生銀行賬戶,統(tǒng)計所有信用賬戶的最高透支額度的總和,統(tǒng)計所有賬戶的總余額, 查詢出所有信用賬戶中透支額度最高的賬戶, 查詢出所有儲蓄賬戶中余額最高的賬戶等功能

我們這樣填寫

package com.atm.entity; import java.text.SimpleDateFormat;import java.util.Date; /** * 銀行類 * * @author qianghj * * 銀行開戶 ----> 銀行賬戶 Account account = bank.開戶(...) * */public class Bank { public Account[] accArray = new Account[2000]; public int count = 0;// 表示銀行賬戶的個數(shù) /** * 銀行賬戶開戶 * * @param accName * 用戶名稱 * @param accPwd * 用戶密碼 * @param accPersonId * 用戶身份證 * @param accTelno * 用戶手機號碼 * @param accEmail * 用戶郵箱 * @param accountType * 賬戶類型 0: 儲蓄賬戶 1 : 信用賬戶 * @param maxOverdraw * 信用賬戶的最高透支額度 * @return 返回有效的銀行賬戶 */ public Account registAccount(String accName, String accPwd, String accPersonId, long accTelno, String accEmail, int accountType, double maxOverdraw) { Account account = null; if (accountType == 0) account = new SavingAccount(accName, accPwd, accPersonId, accTelno, accEmail); else account = new CreditAccount(accName, accPwd, accPersonId, accTelno, accEmail, maxOverdraw); account.setAccountId(generateNextAccountId()); accArray[count++] = account; return account; } /** * 產(chǎn)生銀行賬戶帳號 * * @return 返回下一個賬戶的帳號 1,2,3,,4 */ public String generateNextAccountId() { return '62223421' + new SimpleDateFormat('yyyyMMddHHmmssSSS').format(new Date()); } // 統(tǒng)計所有信用賬戶的最高透支額度的總和 (1050 ) 2000 , 1050 public double statisticsCreditAccountMaxoverdrawSum() { double sum = 0; for (int i = 0; i < count; i++) { // 判斷賬戶 是不是 CreditAccount類型 if (accArray[i] instanceof CreditAccount) { CreditAccount creditAcc = (CreditAccount) accArray[i]; sum += creditAcc.getMaxOverdraw(); } } return sum; } // 統(tǒng)計所有賬戶的總余額 public double aggregateAamount() { double sum = 0; for (int i = 0; i < count; i++) { if (accArray[i] instanceof SavingAccount) { SavingAccount savingAccount = (SavingAccount) accArray[i]; sum += savingAccount.getAccountBalance(); } } return sum; } // 查詢出所有信用賬戶中透支額度最高的賬戶 public double maxLimit() { double tem = 0; for (int i = 0; i < count; i++) { if (accArray[i] instanceof CreditAccount) { CreditAccount creditAccount = (CreditAccount) accArray[i]; if (creditAccount.getMaxOverdraw() > tem) { tem = creditAccount.getMaxOverdraw(); } } } return tem; } // 查詢出所有儲蓄賬戶中余額最高的賬戶 public double maxBalance() { double tem = 0; for (int i = 0; i < count; i++) { if (accArray[i] instanceof SavingAccount) { SavingAccount savingAccount = (SavingAccount) accArray[i]; if (savingAccount.getAccountBalance() > tem) { tem = savingAccount.getAccountBalance(); } } } return tem; } }

最后測試類

package test; import org.junit.Test; import com.atm.entity.Account;import com.atm.entity.Bank;import com.atm.entity.CreditAccount; public class TestAccount { @Test public void testRegist() { Bank bank = new Bank(); for (int i = 0; i < 1000; i++) { // 0: 儲蓄賬戶 1 : 信用賬戶 Account acc = bank.registAccount('tom' + i, 'abc123', '2729382932', 183923302L, 'tom' + i + '@163.com', i % 2, (i % 2 == 0) ? 0 : 3000); if (i % 2 != 0) { CreditAccount creditAcc = (CreditAccount) acc; System.out.println('所有信用賬戶的名字:' + creditAcc.getAccountName() + '和透支額度:' + creditAcc.getMaxOverdraw()); } } // 1000個銀行賬戶開戶,500是信用賬戶,最高透支額度隨機數(shù)賦值,再測試 // double sum = bank.統(tǒng)計所有信用賬戶的最高透支額度的總和 (); double sum = bank.statisticsCreditAccountMaxoverdrawSum(); System.out.println('所有信用賬戶的最高透支額度的總和 :' + sum); double sum1 = bank.aggregateAamount(); System.out.println('總余額為' + sum1); } }

測試類的內(nèi)容不多寫,大家有興趣可以自行測試。這樣,我們就完成了一個比較簡單的ATM項目。希望對新學(xué)者有所幫助。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標簽: Java
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲男女av一区二区| 美女网站视频一区| 日本va欧美va瓶| 国产精品18| 日韩欧美精品一区| 三级一区在线视频先锋| 日韩高清一区在线| 国产成人免费av一区二区午夜| 91精品国产91久久久久久黑人| 丝袜a∨在线一区二区三区不卡| 亚洲免费专区| 在线看片福利| 亚洲精品一级| 国产传媒在线| 中文字幕一区二区av| 免费精品一区| 99pao成人国产永久免费视频 | 在线精品亚洲欧美日韩国产| 亚洲欧美久久久| 精品视频一区二区三区四区五区| 欧美综合另类| 国产劲爆久久| 欧美日韩精品免费观看视频完整| 欧美日韩伊人| 欧美aa国产视频| 国产精品对白| 水野朝阳av一区二区三区| 精品精品国产三级a∨在线| 欧美日韩四区| 国产一区丝袜| 亚洲精品人人| 久久亚洲成人| 久久免费视频66| 午夜在线视频观看日韩17c| 精品视频在线一区二区在线| 欧美专区在线| 日韩欧美午夜| 国产精品一区二区精品| 伊人影院久久| 久久香蕉精品香蕉| 三级亚洲高清视频| av资源亚洲| 国产精品久一| 三级一区在线视频先锋| 91精品xxx在线观看| 国产伦理一区| 亚洲欧洲av| 免费视频亚洲| 成人影视亚洲图片在线| 欧美亚洲tv| 天堂成人国产精品一区| 日韩精品诱惑一区?区三区| 国产日韩一区二区三区在线| 丝袜美腿一区二区三区| 人人草在线视频| 国产精品一区二区三区美女| 视频一区视频二区中文| 欧美一区三区| 亚洲国产欧美日本视频| 国产剧情在线观看一区| 亚洲理论在线| 美女久久网站| jiujiure精品视频播放| 蜜桃成人精品| 岛国av在线播放| 久久精品免视看国产成人| 日韩精品中文字幕一区二区| 久久亚洲色图| 亚洲一级在线| 午夜久久福利| 国产主播一区| 久久国产成人午夜av影院宅| 欧美一级鲁丝片| 国产一区国产二区国产三区| 国产精品网站在线看| 日韩美女精品| 日韩国产在线观看| 亚洲精品动态| 综合激情五月婷婷| 午夜一级久久| 9久re热视频在线精品| 久久久久中文| 99精品美女| 久久一区二区中文字幕| 国产精品专区免费| 国产福利91精品一区二区| 久久久91麻豆精品国产一区| 国产日韩免费| 国产极品模特精品一二| 国产亚洲久久| 国产日韩欧美一区在线| 7777精品| 国产精品久久久久av蜜臀 | 久久三级视频| 久久在线免费| 一区久久精品| 蜜桃视频一区二区三区在线观看| 亚洲精品电影| 丝袜美腿一区二区三区| 久久高清国产| 日韩精品一区二区三区免费视频 | 日韩一区二区三区在线看| 一二三区精品| 欧美午夜网站| 麻豆精品视频在线观看视频| 国产不卡av一区二区| 波多野结衣久久精品| 亚洲高清二区| 免费成人av在线播放| 日韩中文字幕视频网| 国产无遮挡裸体免费久久| 国产毛片精品| 91亚洲人成网污www| 九九精品调教| 午夜在线精品偷拍| 亚洲18在线| 国产精品一区二区三区美女| 精品国产99| 国产精品99一区二区| 国产精品日本| 日本免费一区二区视频| 久久av免费看| 播放一区二区| 美女精品在线观看| 国产日产精品_国产精品毛片 | 国产精品www994| 91日韩欧美| 影院欧美亚洲| 欧美日韩午夜电影网| 狠狠久久伊人| 欧美日韩少妇| 日本视频一区二区| 精品淫伦v久久水蜜桃| 在线亚洲人成| 男人操女人的视频在线观看欧美| 日韩成人精品一区二区三区| 精品国产不卡| 亚洲精品97| 奇米亚洲欧美| 日韩理论片av| 亚洲精品第一| 伊人久久在线| 亚洲日韩视频| 麻豆国产在线| 免费在线成人网| 免费一级欧美在线观看视频| 欧美va天堂在线| 日韩亚洲精品在线观看| 卡一精品卡二卡三网站乱码| 黄色亚洲免费| 欧美国产另类| 蜜臀久久99精品久久一区二区| 91欧美精品| 91精品国产91久久久久久黑人| 日韩综合小视频| 欧美三级精品| 欧美日本一区| 欧美日韩高清| 国产精品久久久久久妇女| 久久中文字幕av| 国产精品资源| 国产精品毛片一区二区三区| 久久久亚洲欧洲日产| 午夜亚洲一区| 午夜av不卡| 国产欧美高清| 久久高清国产| 一本大道色婷婷在线| 国产探花一区二区| 不卡av一区二区| 久久精品午夜| 日韩中文字幕无砖| 欧美福利一区| 久久精品色播| 亚洲18在线| 国产综合婷婷| 电影91久久久| 日韩va欧美va亚洲va久久| 久久在线电影| 国产成人精品一区二区三区视频| 天堂va欧美ⅴa亚洲va一国产| 在线视频观看日韩| 国产一区不卡| 91精品尤物| 久久电影一区| 久久精品91| 精品国产不卡| 久久国产精品色av免费看| 六月天综合网| 激情婷婷综合| 日韩国产在线| 麻豆成人91精品二区三区| 亚洲欧美高清| 欧美日韩一二三四| 91亚洲国产成人久久精品| 国产精品美女在线观看直播| 在线免费观看亚洲| 国产在线日韩| 成人va天堂| 高潮一区二区|