------------------------------------------
/**
* 帐户接口
* @author mazq
*/
public interface Account {
/**
* 用来返回最近10次帐号交易的平均值。
* @return
*/
public double avgTranSize();
}
------------------------------------------
public class BankAccount implements Account {
double[] arr;//定义最近交易的一个数组
public double accoutValue=1000;//帐户中默认的值
public double avgTranSize() {
double temp = 0;
for(int i=0;i<arr.length;i++){
temp+=arr[i];
}
return temp/arr.length;
}
/**
* 构造方法
*/
public BankAccount(){
arr = new double[10];
arr[0] = 100;
arr[1] = 11;
arr[2] = 22;
arr[3] = 33;
arr[4] = 44;
arr[5] = 55;
arr[6] = 66;
arr[7] = 77;
arr[8] = 88;
arr[9] = 99;
//创建最近10笔交易的数组完毕
}
/**
* 保存存入银行的钱数
* @param val
*/
public void addValue(double val){
accoutValue += val;
biz(val);
}
/**
* 取出out的钱数,如果帐户中的钱数不足以取出那麽多,交易失败
* @param out
* @return
*/
public double takeOut(double out){
if(out<accoutValue){
accoutValue-=out;
biz(out);
return out;
}else{
System.out.println("交易失败");
return -1;
}
}
/**
* 保存交易的方法
* @param value
*/
public void biz(double value){
for(int i=0;i<arr.length-1;i++){
arr[i]=arr[i+1];
}
arr[9]=value;
}
}
------------------------------------------
public class SavingAccount extends BankAccount {
public double takeOut(double out) {
if(accoutValue<100){
System.out.println("帐户中的钱数小于100,交易失败");
}
if(out<accoutValue){
accoutValue-=out;
return out;
}else{
System.out.println("交易失败");
return -1;
}
}
}
---------------------------------
public class Test {
public static void main(String[] args) {
SavingAccount s = new SavingAccount();
System.out.println(s.avgTranSize());//获取帐户中最近10笔交易平均值
s.addValue(1000);//向帐户中存入1000块钱
System.out.println(s.avgTranSize());//获取帐户中最近10笔交易平均值
s.takeOut(100000);//从帐户提取10000块钱,余额不够,交易失败
System.out.println(s.avgTranSize());//交易不成功,所以最近10比交易平均值不变
}
}
温馨提示:内容为网友见解,仅供参考