• Java 练习(super练习)


    银行账号,取钱,存钱,透支 练习

    Account.java

    package com.klvchen.exer2;
    
    public class Account {
    	
    	private int id;
    	private double balance;
    	private double annualInterestRate;
    	
    	public Account(int id, double balance, double annualInterestRate) {
    		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;
    		}
    	}
    	
    
    }
    

    AccountTest.java

    package com.klvchen.exer2;
    
    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.klvchen.exer2;
    
    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) {
    			super.withdraw(amount);
    		}else if(overdraft >= amount - getBalance()) { //透支额度+余额足够消费
    			
    			overdraft -= (amount - getBalance());
    			
    			//setBalance(0);
    			//或
    			super.withdraw(getBalance());
    		}else {
    			System.out.println("超过可透支限额!");
    		}
    	}
    }
    

    CheckAccountTest.java

    package com.klvchen.exer2;
    
    public class CheckAccountTest {
    	public static void main(String[] args) {
    		
    		CheckAccount acct = new CheckAccount(1122, 20000, 0.045, 5000);
    		
    		acct.withdraw(50000);
    		System.out.println("您的账号余额为: " + acct.getBalance());
    		System.out.println("您的可透支额度为: " + acct.getOverdraft());
    		
    		System.out.println("***********************************");
    		
    		acct.withdraw(18000);
    		System.out.println("您的账号余额为: " + acct.getBalance());
    		System.out.println("您的可透支额度为: " + acct.getOverdraft());
    		
    		System.out.println("***********************************");
    		
    		acct.withdraw(3000);
    		System.out.println("您的账号余额为: " + acct.getBalance());
    		System.out.println("您的可透支额度为: " + acct.getOverdraft());
    	}
    
    }
    

    运行结果:

  • 相关阅读:
    你真的理解clear:both吗?
    动态修改DataSet的列名,GridView动态绑定列
    word2007 添加批注后怎样让文档内容不向左移动 保持不变
    【转载】哪个OA比较好,18家常见OA系统全方位大阅兵
    短线选股的四大核心要素
    ASPX页面的缓存OutputCache
    OA产品的边际竞争者
    老股民经验之谈 这些股票买入必死无疑
    Word 2007批注及批注者姓名修改技巧
    ASP.NET中httpmodules与httphandlers全解析
  • 原文地址:https://www.cnblogs.com/klvchen/p/14430061.html
Copyright © 2020-2023  润新知