欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

通过银行账户的例子了解继承!

程序员文章站 2022-07-13 21:18:17
...

通过银行账户的例子了解继承!
通过银行账户的例子了解继承!
Account.java

package exercise;

public class Account {
	protected int id;//账号
	protected double balance;//余额
	protected 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 getMonthlyInterestRate() {
		return annualInterestRate/12;
	} 
	//取款
	public void withdraw(double amount) {
		if(balance>amount) {
			balance -= amount;
		}
		else {
			System.out.println("余额不足!");
		}
	}
	//存钱
	public void depisit(double amount) {
		balance += amount;
	}
}

TestAccount.java

package exercise;

public class TestAccount {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//创建一个账户 ,id=1122,balance=20000,年利率=0.045
		Account acc = new Account(1122,20000,0.045);
		acc.withdraw(30000);
		System.out.println(acc.getBalance());
		acc.withdraw(2500);//取2500元
		acc.depisit(3000);//存3000元
		//打印余额和月利率
		System.out.println("当前余额为:"+acc.getBalance()
		+"月利率为:"+acc.getMonthlyInterestRate());
		
 	}

}

CheckAccount.java

package exercise;

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;
	}
	public void withdraw(double amount) {
			if(amount<=balance) {
				balance -=amount;
			}
			else if(overdraft >= amount - balance) {
				overdraft -= (amount - balance);//这一步能不能与下一步调换?不能,因为换之后等式右边amount减去的就是0了
				balance = 0;
			}
			else{
				System.out.println("超过可透支的限额!");
			}
		}
	}


TestCheckAccount.java

package exercise;

public class TestCheckAccount {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		CheckAccount acc1 = new CheckAccount(1122,20000,0.045,5000);
		acc1.withdraw(5000);
		System.out.println("账户余额为:"+acc1.getBalance()+"\t"+"可透支额度为:"
		+acc1.getOverdraft());
		acc1.withdraw(18000);
		System.out.println("账户余额为:"+acc1.getBalance()+"\t"+"可透支额度为:"
				+acc1.getOverdraft());
		acc1.withdraw(3000);
		System.out.println("账户余额为:"+acc1.getBalance()+"\t"+"可透支额度为:"
				+acc1.getOverdraft());
	}
}

相关标签: 继承例子