|
@@ -0,0 +1,95 @@
|
|
|
|
+package com.sf.day09.lx3;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+public class CreditCard extends DepositCard{
|
|
|
|
+ private double maxTotalOfDraftOfMonth; //本月最大透支总额度
|
|
|
|
+ private double overOfOfDraft; //已经透支的额度
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ *
|
|
|
|
+ * @param money 取款金额
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public void withdraw(double money) {
|
|
|
|
+ if(money > getBalance() + (maxTotalOfDraftOfMonth - overOfOfDraft)){
|
|
|
|
+ System.out.println("超过可透支额度");
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ if(money < getBalance()){
|
|
|
|
+ super.withdraw(money);
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ if(money > getBalance() && money < (getBalance() + maxTotalOfDraftOfMonth - overOfOfDraft)){
|
|
|
|
+ overOfOfDraft += money - getBalance();
|
|
|
|
+ setBalance(0); //余额为空
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 存款
|
|
|
|
+ * @param money 存款金额
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public void save(double money) {
|
|
|
|
+ if(money < 0){
|
|
|
|
+ System.out.println("存款金额不能为负数");
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ if(money >0 && money < overOfOfDraft){
|
|
|
|
+ overOfOfDraft -= money;
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if(money > overOfOfDraft){
|
|
|
|
+ // super.save(money-overOfOfDraft);
|
|
|
|
+ setBalance(money-overOfOfDraft);
|
|
|
|
+ overOfOfDraft = 0;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public CreditCard() {
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public void getDate(DepositCard depositCard,int x ,int y){
|
|
|
|
+ setBalance(depositCard.getBalance());
|
|
|
|
+ this.setOverOfOfDraft(x);
|
|
|
|
+ this.setMaxTotalOfDraftOfMonth(y);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public CreditCard(double maxTotalOfDraftOfMonth, double overOfOfDraft) {
|
|
|
|
+ this.maxTotalOfDraftOfMonth = maxTotalOfDraftOfMonth;
|
|
|
|
+ this.overOfOfDraft = overOfOfDraft;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public CreditCard(String id, double balance, double maxTotalOfDraftOfMonth, double overOfOfDraft) {
|
|
|
|
+ super(id, balance);
|
|
|
|
+ this.maxTotalOfDraftOfMonth = maxTotalOfDraftOfMonth;
|
|
|
|
+ this.overOfOfDraft = overOfOfDraft;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public double getMaxTotalOfDraftOfMonth() {
|
|
|
|
+ return maxTotalOfDraftOfMonth;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public void setMaxTotalOfDraftOfMonth(double maxTotalOfDraftOfMonth) {
|
|
|
|
+ this.maxTotalOfDraftOfMonth = maxTotalOfDraftOfMonth;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public double getOverOfOfDraft() {
|
|
|
|
+ return overOfOfDraft;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public void setOverOfOfDraft(double overOfOfDraft) {
|
|
|
|
+ this.overOfOfDraft = overOfOfDraft;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public String toString() {
|
|
|
|
+ return "CreditCard{" +
|
|
|
|
+ "maxTotalOfDraftOfMonth=" + maxTotalOfDraftOfMonth +
|
|
|
|
+ ", overOfOfDraft=" + overOfOfDraft +
|
|
|
|
+ '}';
|
|
|
|
+ }
|
|
|
|
+}
|