Bank.java
public abstract class Bank {
private int money; //存款
public double income;//利息
public double year; //年数
public int getMoney() {
return money;
}
public void setMoney(int money) {
this.money = money;
}
public abstract double computerIncome();//计算存款利息
public int saveMoney(int in){ //存款
money=money+in;
return money;
}
public int drawMoney(int out){ //取款
money=money-out;
return money;
}
}
China.java
public class China extends Bank implements Commision{
@Override
public double computerIncome() {
// TODO Auto-generated method stub
if(getMoney()<=3000){
income=getMoney()*0.5*year;
}
else if(getMoney()>3000&&getMoney()<6000){
income=getMoney()*1.5*year;
}
else{
income=getMoney()*2.5*year;
}
return income;
}
public double computerComm() {
// TODO Auto-generated method stub
if(year>3&&year<6){
income=computerIncome()*1.5;
}
else if(year>6&&year<10){
income=computerIncome()*2.5;
}
else{
if(year<3)
income=computerIncome();
else
income=computerIncome()*3.5;
}
return income;
}
public void draw(int out) throws moneyException{
if(getMoney()<out){
throw new moneyException(out);
}
}
}
Commision.java
public interface Commision {
public abstract double computerComm();//计算提成
}
moneyException.java
public class moneyException extends Exception { // 处理取钱不能超出余额的异常。
/**
*
*/
private static final long serialVersionUID = -7014674571268272650L;
String message;
public moneyException(int n){
message="取款金额为"+n+"对不起,余额不足";
}
public String warnMess(){
return message;
}
}
bankTest.java
import java.util.Scanner;
public class bankTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
China ch = new China();
ch.setMoney(5);
System.out.println("已有存款"+ch.getMoney()+"元");
System.out.println("请输入存款金额:");
Scanner sc = new Scanner(System.in);
ch.saveMoney(sc.nextInt());
System.out.println("请输入存款年数:");
Scanner yea=new Scanner(System.in);
ch.year=yea.nextDouble();
System.out.println("现有存款:" + ch.getMoney()+"元");
System.out.println("存款利息:"+ch.computerIncome()+"元");
System.out.println("存款提成:"+ch.computerComm()+"元");
System.out.println("请输入取款金额:");
Scanner sc2 = new Scanner(System.in);
try {
ch.draw(sc2.nextInt());
}
catch (moneyException e) {
System.out.println(e.warnMess());
}
}
}
已有存款5元
请输入存款金额:
2000
请输入存款年数:
3
现有存款:2005元
存款利息:3007.5元
存款提成:10526.25元
请输入取款金额:
5000
取款金额为5000对不起,余额不足