首页 > 代码库 > 银行卡系统 接口
银行卡系统 接口
1 package card; 2 //银行卡系统 3 4 import java.util.Scanner; 5 6 public class UnionPayTest { 7 public static void main(String[] args) { 8 UnionPay icbc = new ICBCImpl(2000,"123456"); 9 10 Scanner input = new Scanner(System.in); 11 System.out.println("请输入密码:"); 12 if(icbc.checkPwd(input.next())){ 13 System.out.println("请输入金额:"); 14 double num = Double.parseDouble(input.next()); 15 if(icbc.drawMoney(num)){ 16 System.out.println("取钱成功,卡余额为:"+icbc.getBalance()); 17 } 18 else{ 19 System.out.println("取钱失败"); 20 } 21 }else{ 22 System.out.println("密码错误"); 23 } 24 input.close(); 25 } 26 } 27 28 interface UnionPay { 29 /**查看余额*/ 30 public double getBalance(); 31 /**取钱*/ 32 public boolean drawMoney(double number); 33 /**检查密码*/ 34 public boolean checkPwd(String input); 35 } 36 37 /** 38 * 接口:用于描述工商银行发行的卡片功能,在满足 39 * 银联的规则基础上,添加自己特有的功能 40 */ 41 interface ICBC extends UnionPay { 42 /**增加的在线支付功能*/ 43 public void payOnline(double number); 44 } 45 46 /** 47 * 接口:用于描述中国农业银行发行的卡片功能,在满足 48 * 银联的规则基础上,添加自己特有的功能 49 */ 50 interface ABC extends UnionPay { 51 /**增加支付电话费的功能*/ 52 public boolean payTelBill(String phoneNum,double sum); 53 } 54 55 56 57 /** 58 * 类:用于描述工商银行实际发行的卡片 59 * 该卡片具有的功能来自于继承的已经符合银联规范的ICBC接口 60 */ 61 class ICBCImpl implements ICBC { 62 private double money; 63 private String pwd; 64 65 public ICBCImpl(double money,String pwd){ 66 this.money = money; 67 this.pwd = pwd; 68 } 69 70 71 public double getBalance() { 72 return money; 73 } 74 75 public boolean drawMoney(double number) { 76 if(number <= money){ 77 money -=number; 78 return true; 79 } 80 return false; 81 } 82 83 public void payOnline(double number) { 84 if(number < money){ 85 money-=number; 86 } 87 } 88 89 public boolean checkPwd(String input) { 90 if(pwd.equals(input)) 91 return true; 92 else 93 return false; 94 } 95 } 96 97 /** 98 * 类:用于描述农业银行实际发行的卡片 99 * 该卡片具有的功能来自于继承的已经符合银联规范的ABC接口100 */101 class ABCImpl implements ABC {102 /**卡内余额,允许最多透支2000*/103 private double balance;104 /**账号密码*/105 private String password;106 107 public ABCImpl(double balance,String password){108 this.balance = balance;109 this.password = password;110 }111 112 113 public double getBalance() { 114 return balance;115 }116 117 118 public boolean drawMoney(double number) {119 if((balance-number) >= -2000){120 balance-=number;121 return true;122 }123 return false;124 }125 126 127 public boolean checkPwd(String input) {128 if(password.equals(input)){129 return true;130 }else{131 return false;132 } 133 }134 135 136 public boolean payTelBill(String phoneNum, double sum) {137 if(phoneNum.length() == 11 && (balance-sum)>=-2000){138 balance-=sum;139 return true;140 }141 return false;142 }143 }
银行卡系统 接口
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。