java银行卡类的部分编写 含异常运用

public abstract class Account {
        protected String accuntID;
        protected  String pwd;
        protected  double balance;

public Account(String accuntID, String pwd, double balance) { //构造方法
    super();
    this.accuntID = accuntID;
    this.pwd = pwd;
    this.balance = balance;
}
public String getAccuntID() {
    return accuntID;
}
public void setAccuntID(String accuntID) {
    this.accuntID = accuntID;
}
public String getPwd() {
    return pwd;
}
public void setPwd(String pwd) {
    this.pwd = pwd;
}
public double getBalance() {
    return balance;
}
public void setBalance(double balance) {
    this.balance = balance;
}
public void balance(){
    System.out.println(new Date()+"当前余额为:"+balance);
}

public abstract boolean  deposit(double c) throws Exception;//存款 判断语加入子类才能继承
public abstract void  draw(double c);//取款

//判断密码
public boolean ftpassWord(){
    Scanner sc =new Scanner(System.in);
    boolean flag=false;
    int k=1;
    while(true){
        System.out.println("请输入密码");
        String passWord=sc.next();
        if(pwd.equals(this.pwd)){
            System.out.println("密码正确");
            flag=true;
            break;
        }
        else{
            if(k>3){
                System.out.println("您今天已经输入过3次不能再进行输入了");
                break;
            }
            System.out.println("密码错误");
        }
        k++;
    }
    return flag;
}

public void pwd(String a){//修改密码
System.out.println("当前密码为:"+pwd);
}

}
public class logger {
    public static void pringtlog(CreditAccount ca, String msg){
        String info = "日志信息:时间"+new Date()+""+msg;
        System.out.println(info+"信用卡账号:"+ca.accuntID+"余额:"+ca.getAccuntID());
    }

}
public class CreditAccount extends Account{
    double overdraft;//透支
    double dose;//总额度

    public CreditAccount(String accuntID, String pwd, double balance) {
        super( accuntID,pwd,balance);
    }
public void dose(){//可使用总金额
        CreditAccount bc = new CreditAccount(accuntID,pwd,balance);
        System.out.println("请输入消费金额");
        Scanner sc = new Scanner(System.in);
        double xiaofei=sc.nextDouble();
        overdraft=3000;
        System.out.println("透支额度剩余:"+(overdraft-xiaofei));
}
public boolean deposit(double a){//存款
    boolean flag=false;
    System.out.println("请输入存款金额");
    Scanner sc = new Scanner(System.in);        
    double c=sc.nextDouble();
    balance=c+balance;
    if(c>0&&c<=10000){
    System.out.println("存款后当前余额:"+balance);
    flag=true;
    }else{
        System.out.println("取款金额错误");
        flag=false;

    }
    return flag;
}
public void draw(double c){//取款
    System.out.println("请输入取款金额");
    Scanner sc = new Scanner(System.in);        
    double q=sc.nextDouble();


    if(balance>=q){
        balance=balance-q;
        System.out.println("取款后当前余额:"+balance);
    }else{
        System.out.println("什么都可以没有就是不能没有钱......账户余额不足:");  
}
}

}
public  class PersonaAccount extends Account{
    private double tdeposit;//存款

    public PersonaAccount(String accuntID, String pwd, double balance) {
        super( accuntID,pwd,balance);
    }

    public void tdeposit(){//定期存款

        Scanner sc = new Scanner(System.in);
        int select=sc.nextInt();
        tdeposit=sc.nextDouble();
        int year =sc.nextInt();
        balance=balance+tdeposit;
        System.out.println("定期存入金额:"+tdeposit+"元"+year+"年");
    }




    public boolean deposit(double a)throws Exception{//存款 抛出存款错误异常
        boolean flag=false;
        System.out.println("请输入存款金额");
        Scanner sc = new Scanner(System.in);        
        double c=sc.nextDouble();
        balance=c+balance;
        if(c>0&&c<=10000){
        System.out.println("存款后当前余额:"+balance);
        flag=true;
        }else{

            System.out.println("取款金额错误");
            flag=false;
            try {//可能又异常的代码
                throw new Exception("异常");//一定要处理此类异常问题
            } catch (Exception e) {//捕获异常并进行异常处理
                // TODO Auto-generated catch block
                System.out.println("请去柜台办理相关业务");
            }

        }
        return flag;
    }
    public void draw(double a){//取款
        System.out.println("请输入取款金额");
        Scanner sc = new Scanner(System.in);        
        double q=sc.nextDouble();


        if(balance>=q){
            balance=balance-q;
            System.out.println("取款后当前余额:"+balance);
        }else{
            System.out.println("什么都可以没有就是不能没有钱......账户余额不足:");  
    }
    }
}


public class test {

    public static void main(String[] args)  {
        // TODO Auto-generated method stub


        Account sp =new PersonaAccount("56215698861213","787457",65891);

        try {
            sp.deposit(0);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值