银行卡系统 接口

  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 }
时间: 2024-10-05 22:41:52

银行卡系统 接口的相关文章

银行卡系统

package oo.day06;//银行卡系统public class UnionPayTest { public static void main(String[] args) { ICBCImpl icbc1 = new ICBCImpl(); ICBC icbc2 = new ICBCImpl(); //向上造型 UnionPay icbc3 = new ICBCImpl(); //向上造型 }} interface UnionPay{ //银联接口 public double getB

缓存外部系统接口返回信息的方案

概要: 在一个大的系统当中,通常会切分成多个子系统,子系统与子系统之间可以通过微服务.http接口或者mq等来相互通讯.假设有这样一种场景,A系统需要调用B系统的f1 接口,获取数据后再向前端系统输出. 前端系统通常所承受的并发量是非常大的,也就是说A系统的接口需要有很高的qps. 这个时候我们需要缓存B系统接口的输出,以便提高A系统接口的响应速度. 详细内容请看我的csdn博客链接: 缓存外部系统接口返回信息的方案

(办公)访问其他系统接口httpClient,异步访问

访问其他系统接口httpClient,但是都是同步的,同步意味当前线程是阻塞的,只有本次请求完成后才能进行下一次请求;异步意味着所有的请求可以同时塞入缓冲区,不阻塞当前的线程; httpClient请求,访问其他系统可能无响应,锁死,访问请求上线种种问题,这些问题就像苍蝇嗡嗡嗡的在你耳边,那么解决他可以设置超时时间,但是访问一个接口将近1分钟,这个是不应该的,所以还是要异步请求其他系统的接口,我们可以使用多线程来做,建立一个线程池,只指定10个线程,然后调用方法.(好主意) 下面是举个sprin

银行卡验证接口API(仅需一行代码,实现全国银行卡核验)

银行卡确认在互联网越来越普及,在二手.电商.贷款.等主流互联网应用中都有明确的刚需,传统的 银行卡核验方式是用户上传图片,客服后台人肉审核,但问题在于根本无从确认 银行卡的真实性,也不能确认该 银行卡持有人和身份证的契合关系. 今天谈的是对接全国银行进行实时银行卡认证的银行卡核验系统,需要的请求值包括:姓名.身份证号.银行卡号.手机号 代码很简单,向七侠犬服务器发起以下WEB请求: https://api.7xq.com/bandCard?name=姓名&no=身份证号码&mobile=手

《C程序设计语言》笔记 (八) UNIX系统接口

8.1 文件描述符 UNIX操作系统通过一系列的系统调用提供服务,这些系统调用实际上就是操作系统内的函数 ANSI C标准函数库是以UNIX系统为基础建立起来的 在UNIX系统中所有的外围设备都被看作是文件系统中的文件,因此,所有的输入输出都要通过文件读写完成 也就是说,通过一个单一的接口就可以处理外围设备和程序之间的所有通信 在读写文件之前,必须先将这个意图通知系统,该过程称为打开文件 如果是写写一个文件,则可能需要先创建该文件 操作系统想程序返回一个小的非负整数,该整数称为文件描述符. 任何

OrderOnline——系统接口设计

一.用户接口 1. 用户界面整体上选择比较简洁的风格,登陆注册界面为绿色外,其他页面以粉白为主. 2. 系统有数据保护和缓存,用户操作可逆,可通过选择或滑动退回用户该操作前的界面. 3. 登陆/注册功能:因为涉及到交易,必须需要验证学生证才能注册成功. 4. 查询功能:用户可输入关键字查询所需的商品及相关信息. 5. 加入购物车与支付:用户可将自己点的菜加入到购物车,选择完毕后进行支付. 二.软件接口 1. 运行于Android端. 2. 功能的实现需要实现网上支付,如微信. 3. 通信接口:

如何提高系统接口安全性

本人作为一名Java开发者,在工作中时常遇到需要从其它系统拉取数据,那么就需要跟其它系统的同学沟通为我们开放接口,对方会发送一些AppId和AppKey之类的数据,在我们请求接口的时候,需要把这些值和参数等信息一起生成摘要发送过去:最近项目又因其它原因,需要开放外网,于是安全部对系统一顿扫描,提出各类安全要求,本人也将近期的收获分享给大家 1. XSS防护 1)XSS原理XSS是最常见的功能类型,其原理就是在WEB页面中嵌入恶意脚本程序,当用户在打开页面的时候,恶意的脚本程序就会在客户端的浏览器

[每日电路图] 1、基于AT89C52单片机最小系统接口电路【转】

:http://www.21ic.com/dianlu/ :http://www.elecfans.com/soft/49/ :http://www.wuyazi.com/ come from:http://www.21ic.com/dianlu/basis/interface/2015-04-21/621607.htm AT89C52是美国Atmel公司生产的低电压.高性能CMOS 8位单片机,片内含8KB的可反复擦写的程序存储器和256B的随机存取数据存储器(RAM),器件采用Atmel公司

Linux平台下利用系统接口函数按照行读写文件

要求:支持大文件(1M)一次性读入 源代码如下: #include<stdio.h> #include<fcntl.h> #include<stdlib.h> #include<string.h> #define rwmode 2 //清屏命令函数 void clear() { char clscode[] = {0x1B, 0x5B, 0x48, 0x1B, 0x5B, 0x4A}; printf("%s",clscode); } //