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

 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;
}
....
}

java - day13 - UnionPay的更多相关文章

  1. 尚学堂 JAVA Day13 abstract 关键字

    Abstract (抽象的) 这是一个关键字. 可以且只可以 用来修饰 <类> <方法>. 1---Abstract 类 如:Animal,可以被理解一个抽象的类.动物嘛,只是 ...

  2. java - day13 - ImplementDemo

    接口实现.继承等关系的运用案例P.S: 强制转换,看引用变量指向的对象与目标数据间的关系.可运用 "引用变量 instanceof 目标数据" 来判断是否可用强转 package ...

  3. Java 中 常用API概述之 Math, Object, String,StringBuffer类,Arrays,Integer类

    Math Math类包含执行基本数字运算的方法,如基本指数,对数,平方根和三角函数. 与StrictMath类的一些数字方法不同,Math类的StrictMath所有Math都没有定义为返回比特位相同 ...

  4. Thrift快速入门

    Thrift 简单示例 2017-01-19 16:47:57 首先通过先面两个示例简单感受一下Thrift(RPC)服务端与客户端之间的通信...... RPC学习----Thrift快速入门和Ja ...

  5. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  6. 【JAVA零基础入门系列】Day13 Java类的继承与多态

    继承是类的一个很重要的特性,什么?你连继承都不知道?你是想气死爸爸好继承爸爸的遗产吗?(滑稽) 开个玩笑,这里的继承跟我们现实生活的中继承还是有很大区别的,一个类可以继承另一个类,继承的内容包括属性跟 ...

  7. 【Java入门提高篇】Day13 Java中的反射机制

    前一段时间一直忙,所以没什么时间写博客,拖了这么久,也该更新更新了.最近看到各种知识付费的推出,感觉是好事,也是坏事,好事是对知识沉淀的认可与推动,坏事是感觉很多人忙于把自己的知识变现,相对的在沉淀上 ...

  8. java基础-day13

    第01天 java面向对象 今日内容介绍 u 继承 u 抽象类 第1章   继承 1.1  继承的概述 在现实生活中,继承一般指的是子女继承父辈的财产.在程序中,继承描述的是事物之间的所属关系,通过继 ...

  9. java 多线程 day13 condition 线程通信

    /** * Created by chengtao on 17/12/5. * Condition 类似 wait和notify,解决线程间的同步问题 */ import java.util.conc ...

随机推荐

  1. URAL 2072 Kirill the Gardener 3 (单调DP)

    [题目链接] http://acm.timus.ru/problem.aspx?space=1&num=2072 [题目大意] 一个园丁要给一排花浇水,每个花都有一个标号,必须要先浇标号小的, ...

  2. css中width和height默认值

    width和height默认都是auto自动伸缩的,但不同的标签效果却不一样比如div默认是width:100%,通常不用写100%如果是table,如果div内的table没有设定100%,那就是最 ...

  3. C#测试程序运行时间

    一.用C#自带的StopWatch函数 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 using System; usi ...

  4. Idea下Android的配置

    (1) 下载安装好Intellij Idea和Android SDK. (2) Android SDK设置 ,在FIle –> Other Settings –> Default Proj ...

  5. MySql优化--使用索引优化

    原文:http://blog.csdn.net/zuoanyinxiang/article/details/50606837 1.索引优化的原理   在没有使用索引的时候,数据库系统会根据要查找的值到 ...

  6. libCurl 简单使用

    curl easy  的使用步骤 curl_easy_init() curl_easy_setopt() curl_easy_perform() curl_easy_cleanup() ------- ...

  7. linux & windows 共享 smbd 部署

    smbd  : yum install samba samba-client samba-swat mount.cifs :  yum -y install cifs-utils  ##挂载nas 文 ...

  8. Gitlab系列九之取消用户注册页面和删除用户

    一.取消用户注册页面 Admin Area--->Settings--->Sign-up enabled(取消前面的勾)---save 二.删除用户 Users----Destroy(点他 ...

  9. Java solr 分词

    代码如下: import java.io.IOException; import java.util.*; import org.apache.solr.client.solrj.SolrClient ...

  10. 【OpenStack项目管理-CPU/内存/存储/网络 配额管理】

    参考资料: OpenStack如何管理项目和用户:http://os.51cto.com/art/201312/422010.htm Nova.Cinder.Neutron资源配额设置:http:// ...