zoukankan      html  css  js  c++  java
  • 实验-继承&super.doc

    Account.java

    package com.atguigu.exer2;
    
    public class Account {
        private int id;//账号
        private double balance;//余额
        private double annualInterestRate;//年利率
        
        public Account(int id, double balance, double annualInterestRate) {
            super();
            this.id = id;
            this.balance = balance;
            this.annualInterestRate = annualInterestRate;
        }
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public double getBalance() {
            return balance;
        }
    
        public void setBalance(double balance) {
            this.balance = balance;
        }
    
        public double getAnnualInterestRate() {
            return annualInterestRate;
        }
    
        public void setAnnualInterestRate(double annualInterestRate) {
            this.annualInterestRate = annualInterestRate;
        }
        //返回月利率
        public double getMonthlyInterest(){    
            return annualInterestRate / 12;
        }
        //取钱
        public void withdraw (double amount){
            if(balance >= amount){
                balance -= amount;
                return;
            }
            System.out.println("余额不足");
        }
        //存钱
        public void deposit (double amount){
            if(amount > 0){
                balance += amount;
            }
        }
    
    
    }

    Account.java

    package com.atguigu.exer2;
    /*
     * 写一个用户程序测试Account类。在用户程序中,
     * 创建一个账号为1122、余额为20000、年利率4.5%的Account对象。
     * 使用withdraw方法提款30000元,并打印余额。
     * 再使用withdraw方法提款2500元,
     * 使用deposit方法存款3000元,然后打印余额和月利率。
    
     * 
     */
    public class AccountTest {
        public static void main(String[] args) {
            
            Account acct = new Account(1122, 20000, 0.045);
            
            acct.withdraw(30000);
            System.out.println("您的账户余额为:" + acct.getBalance());
            acct.withdraw(2500);
            System.out.println("您的账户余额为:" + acct.getBalance());
            acct.deposit(3000);
            System.out.println("您的账户余额为:" + acct.getBalance());
            
            System.out.println("月利率为:" + (acct.getMonthlyInterest() * 100) +"%");
            
            
            
            
        }
    }

    CheckAccount.java -

    package com.atguigu.exer2;
    /*
     * 创建Account类的一个子类CheckAccount代表可透支的账户,该账户中定义一个属性overdraft代表可透支限额。
     * 在CheckAccount类中重写withdraw方法,其算法如下:
            如果(取款金额<账户余额),
            可直接取款
            如果(取款金额>账户余额),
            计算需要透支的额度
            判断可透支额overdraft是否足够支付本次透支需要,如果可以
                将账户余额修改为0,冲减可透支金额
            如果不可以
                提示用户超过可透支额的限额
    
     * 
     * 
     */
    public class CheckAccount extends Account{
        
        private double overdraft;//可透支限额
        
        public CheckAccount(int id, double balance, double annualInterestRate,double overdraft){
            super(id, balance, annualInterestRate);
            this.overdraft = overdraft;
            
        }
        
        
        public double getOverdraft() {
            return overdraft;
        }
    
    
        public void setOverdraft(double overdraft) {
            this.overdraft = overdraft;
        }
    
    
        @Override
        public void withdraw(double amount) {
            if(getBalance() >= amount){//余额就足够消费
    //            getBalance() -= amount;
                //方式一:
    //            setBalance(getBalance() - amount); 
                //方式二:
                super.withdraw(amount);
            }else if(overdraft >= amount - getBalance()){//透支额度+余额足够消费
                
                overdraft -= (amount - getBalance());
                
    //            setBalance(0);
                //
                super.withdraw(getBalance());
                
            }else{
                System.out.println("超过可透支限额!");
            }
        }
    
    }

    CheckAccountTest.java

    package com.atguigu.exer2;
    /*
     * 写一个用户程序测试CheckAccount类。
     * 在用户程序中,创建一个账号为1122、余额为20000、年利率4.5%,可透支限额为5000元的CheckAccount对象。
        使用withdraw方法提款5000元,并打印账户余额和可透支额。
        再使用withdraw方法提款18000元,并打印账户余额和可透支额。
        再使用withdraw方法提款3000元,并打印账户余额和可透支额。
    
     * 
     */
    public class CheckAccountTest {
        public static void main(String[] args) {
            
            CheckAccount acct = new CheckAccount(1122, 20000, 0.045, 5000);
            
            acct.withdraw(5000);
            System.out.println("您的账户余额为:" + acct.getBalance());
            System.out.println("您的可透支额度为:" + acct.getOverdraft());
            acct.withdraw(18000);
            System.out.println("您的账户余额为:" + acct.getBalance());
            System.out.println("您的可透支额度为:" + acct.getOverdraft());
            acct.withdraw(3000);
            System.out.println("您的账户余额为:" + acct.getBalance());
            System.out.println("您的可透支额度为:" + acct.getOverdraft());
            
            
        }
    }
  • 相关阅读:
    javascript 犀牛书
    Hmtl/css
    SQL Server 查询中使用Union或Union All后Order by排序无效(嵌套查询乱序)
    CSS 动画
    CSS 文字排版
    CSS 太极图
    Amazon Products 服务费估算
    CSS3 结构伪类选择器
    JS 执行机制
    vue 生命周期函数的学习
  • 原文地址:https://www.cnblogs.com/fenxiangyuan/p/14389144.html
Copyright © 2011-2022 走看看