首页 技术 正文
技术 2022年11月14日
0 收藏 805 点赞 5,038 浏览 2409 个字

 银行功能实现,主要为抽象类及接口的运用

 package com.javatest.bankimple;
/* UnionPay */
//银联接口
public interface UnionPay {
public static final double EXCHANGERATE = 6.13; //汇率
public abstract void save(); //存钱
double pick(double pick); //取钱
void check(); //查询余额
boolean checkPassWord(int password); //验证密码
} interface ICBC extends UnionPay{ //工商行接口
public abstract void onlineCharge(); //在线支付
} interface ABC extends UnionPay{ //农行接口
public abstract void onlineChargeForMobile(); //在线支付电话费
}
 package com.javatest.bankimple;
import com.javatest.bankimple.*; /* 工商行及农行的接口实现 */ //实现工商行接口
public class ICBCImple implements ICBC{
private double currentSum; //卡上目前余额,钱的来源就是要存储、读取记录的地方
private int passwordPerson;
ICBCImple(double currentSum,int passwordPerson){
this.currentSum = currentSum;
this.passwordPerson = passwordPerson;
} /*
* 存钱
* */
public void save(){} /*
* 取钱
* */
public double pick(double pickNum){ //核查是否可取款
if(pickNum<=currentSum){
currentSum -= pickNum;//卡上余额
System.out.println("取款成功,余额为:"+currentSum);
}else{
System.out.println("卡上余额不足");
}
return currentSum;
} /*
* 查询余额
* */
public void check(){
System.out.println("卡上余额为:"+currentSum);
} /*
* 验证密码
* */
public boolean checkPassWord(int passwordICBC){
boolean flag;
if(passwordICBC == passwordPerson){
System.out.println("输入正确");
flag = true;
}else{
System.out.println("输入错误");
flag = false;
}
return flag;
} /*
* 在线支付
* */
public void onlineCharge(){}
} //农行接口
class ABCImple implements ABC{
boolean flag; public void save(){} //存
public double pick(double pickNum){
return 0;
} //取钱
public void check(){
} //查钱
public boolean checkPassWord(int passwordABC){
return flag;
} //验证密码
public void onlineChargeForMobile(){} //在线支付电话费
}
 package com.javatest.bankimple;
import com.javatest.bankimple.UnionPay;
import com.javatest.bankimple.ICBCImple;
import java.util.Scanner; /* main测试 */ public class BankImple {
public static void main(String[] args){
UnionPay icbc = new ICBCImple(50000,123);//建工商行--向上造型 //实现工商行功能
System.out.println("工商银行欢迎你");
Scanner scanICBC = new Scanner(System.in); /*
* 验证密码
* */
System.out.print("输入密码:");
int password = scanICBC.nextInt(); if(icbc.checkPassWord(password)){
/*
* 查询余额
* */
System.out.println("是否要查询余额(Y/N):");
String inputRemain = scanICBC.next();
if(inputRemain.equals("Y")){
icbc.check();
}else if(inputRemain.equals("N")){
System.out.println("不查询余额");
} /*
* 取钱
* */
System.out.print("请输入取款数目:");
double pickICBC = scanICBC.nextDouble();
icbc.pick(pickICBC);
}
else{
System.out.println("密码错误,无权访问");
}
}
}

其中,类成员变量私有、对应方法公开以供外部访问/调用的用法 –供外部访问,但不允许外部修改

 public class ICBCImple implements ICBC{
private double money; //卡上余额
private int pwd; //密码
ICBCImple(double money,int pwd){
this.money = money;
this.pwd = pwd;
}
....
}
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,945
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,471
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,284
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,100
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,731
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,766