|
@@ -0,0 +1,94 @@
|
|
|
+package com.lc.day10.home;
|
|
|
+
|
|
|
+/**
|
|
|
+ * ClassName: CreditCard
|
|
|
+ *
|
|
|
+ * @Author 爱扣钉-陈晨
|
|
|
+ * @Create 2023/10/29 9:27
|
|
|
+ * @Version 1.0
|
|
|
+ */
|
|
|
+public class CreditCard extends DepositCard {
|
|
|
+ //可透支额度
|
|
|
+ private double monthOverdraw;
|
|
|
+ //已透支
|
|
|
+ private double overdraw;
|
|
|
+
|
|
|
+ public CreditCard(double monthOverdraw, double overdraw, String account , double money) {
|
|
|
+ //调用super赋值
|
|
|
+ super(account,money);
|
|
|
+
|
|
|
+ this.monthOverdraw = monthOverdraw;
|
|
|
+ this.overdraw = overdraw;
|
|
|
+ }
|
|
|
+
|
|
|
+ public CreditCard(double monthOverdraw, double overdraw) {
|
|
|
+ this.monthOverdraw = monthOverdraw;
|
|
|
+ this.overdraw = overdraw;
|
|
|
+ }
|
|
|
+
|
|
|
+ public CreditCard() {
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 重写 取钱方法
|
|
|
+ * @param money 余额
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void withdraw(double money) {
|
|
|
+ //- 取款金额超过账户余额+本月还可透支额度,提示超过可透支额度
|
|
|
+ if ( money > (getMoney() + this.monthOverdraw ) ){
|
|
|
+ System.out.println("超过可透支额度");
|
|
|
+ } else if (money < getMoney()){
|
|
|
+ //获取额度
|
|
|
+ double m1 = getMoney();
|
|
|
+ //减去花费额度 重新设置到 储蓄卡 余额
|
|
|
+ setMoney(m1 - money);
|
|
|
+ }else if ( money > getMoney() ){
|
|
|
+ //获取额度
|
|
|
+ double m1 = getMoney();
|
|
|
+ //透支的
|
|
|
+ double m2 = money - m1;
|
|
|
+
|
|
|
+ //设置额度为0
|
|
|
+ setMoney(0);
|
|
|
+
|
|
|
+ this.overdraw = m2;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void save(double money) {
|
|
|
+ //- 存款金额不能为负数,否则提示存款金额不能为负数
|
|
|
+ if ( money < 0 ){
|
|
|
+ System.out.println("存款金额不能为负数");
|
|
|
+ }if ( money <= overdraw ){ //- 本次存款金额只够偿还部分已透支金额
|
|
|
+ this.overdraw -= money;
|
|
|
+ }else if (money > overdraw){//- 本次存款金额除了偿还透支金额,还有剩余
|
|
|
+
|
|
|
+ double v = money - overdraw;
|
|
|
+ this.overdraw = 0;
|
|
|
+ //加余额
|
|
|
+ setMoney(v+getMoney());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public double getOverdraw() {
|
|
|
+ return overdraw;
|
|
|
+ }
|
|
|
+
|
|
|
+ public void setOverdraw(double overdraw) {
|
|
|
+ this.overdraw = overdraw;
|
|
|
+ }
|
|
|
+
|
|
|
+ public double getMonthOverdraw() {
|
|
|
+ return monthOverdraw;
|
|
|
+ }
|
|
|
+
|
|
|
+ public void setMonthOverdraw(double monthOverdraw) {
|
|
|
+ this.monthOverdraw = monthOverdraw;
|
|
|
+ }
|
|
|
+
|
|
|
+ public String getInfo(){
|
|
|
+ return "{ 账户:"+getAccount()+" , 余额: "+getMoney()+" , 已透支额度:"+overdraw+" ,月透支额度:"+monthOverdraw+"}";
|
|
|
+ }
|
|
|
+}
|