银行卡系统
一、功能描述
- 要求实现银行卡系统的银联接口,详细要求如下
- 银联接口,用于描述银联统一制定的规则,该接口提供检查密码,取钱以及查询余额方法
- 工商银行接口,用于描述工行发行的卡片功能,在满足银联接口的规则基础上,增加了在线支付功能。
- 农业银行接口,用于描述农行发行的卡片功能,在满足银联接口的规则基础上,增加了支付电话费的功能。另外,农行的卡可以透支5000元。
- 实现工行接口和农行接口,并进行测试
二、实现代码
1、定义银联接口
UnionPay.java
package com.feonix;
/**
* 银联接口
*
* @author FeoniX
*
*/
public interface UnionPay {
/**
* 密码认证
*
* @param passwd
*/
boolean auth(String passwd);
/**
* 取钱
*
* @param money
*/
void drawMoney(double money, String passwd);
/**
* 查询余额
*/
void queryBalance();
}
2、定义工商银行接口,继承银联接口
ICBC.java
package com.feonix;
/**
* 工商银行接口
*
* @author FeoniX
*
*/
public interface ICBC extends UnionPay {
/**
* 在线支付
*
* @param money
* @param passwd
*/
void onlinePay(double money, String passwd);
}
3、定义农业银行接口,继承银联接口
ABC.java
package com.feonix;
/**
* 农业银行接口
*
* @author FeoniX
*
*/
public interface ABC extends UnionPay {
/** 透支额度 */
public static final double OVERDRAFT = 5000;
/**
* 充值话费
* @param money
*/
void recharge(double money, String passwd);
}
4、定义银行类,实现银联接口
Bank.java
package com.feonix;
import java.util.Scanner;
/**
* 银行类 实现 银联 接口
*
* @author FeoniX
*
*/
public abstract class Bank implements UnionPay {
/** 银行卡号 */
private int id;
/** 银行卡密码 */
private String passwd;
/** 银行卡余额 */
private double balance;
public Bank(int id, String passwd, double balance) {
this.id = id;
this.passwd = passwd;
this.balance = balance;
}
public static void main(String[] args) {
Scanner key = new Scanner(System.in);
boolean flag = true;
String passwd;
double money;
Bank icbc = null, abc = null;
while (flag) {
System.out.println("***************欢迎使用银行业务系统****************");
System.out.println("请选择银行:(工商银行请扣1 农业银行请扣2 退出请扣0)");
int bank = key.nextInt();
if (bank == 0) {
break;
}
System.out.println("请输入卡号:");
int id = key.nextInt();
System.out.println("请输入密码:");
passwd = key.next();