我的Java学习之路(六)-- 银行卡系统

本文介绍了如何在Java中设计一个银行卡系统,包括定义银联接口,以及工商银行和农业银行接口,这两个接口都继承自银联接口。此外,还详细说明了各个接口的功能,如密码检查、取款、余额查询等,并展示了如何通过继承和实现来扩展特定银行的功能,如工行的在线支付和农行的支付电话费及透支服务。
摘要由CSDN通过智能技术生成

一、功能描述

  1. 要求实现银行卡系统的银联接口,详细要求如下
    1. 银联接口,用于描述银联统一制定的规则,该接口提供检查密码,取钱以及查询余额方法
    2. 工商银行接口,用于描述工行发行的卡片功能,在满足银联接口的规则基础上,增加了在线支付功能。
    3. 农业银行接口,用于描述农行发行的卡片功能,在满足银联接口的规则基础上,增加了支付电话费的功能。另外,农行的卡可以透支5000元。
    4. 实现工行接口和农行接口,并进行测试

二、实现代码

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();
			
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值