ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

继承和super练习题

2021-10-13 15:02:19  阅读:117  来源: 互联网

标签:练习题 继承 double getBalance System balance super public out


 

package exer2;

public class Account {
	private int id;//账号
	private double balance;//余额
	private double annualInterestRate;//构造器

	public Account(int id,double balance,double annualInterstRate) {
		this.id = id;
		this.balance = balance;
		this.annualInterestRate = annualInterstRate;
	}
	public void setId(int id) {
		this.id = id;
	}
	public int getId() {
		return 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 getMonthlyInsert() {
		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;
		}
	}

}
package exer2;

public class AccountTest {
	public static void main(String[] args) {
		Account a = new Account(1122,20000,0.045);
		a.withdraw(30000);
		System.out.println("您的账户余额为:"+a.getBalance());

		a.withdraw(2500);
		System.out.println("您的账户余额为:"+a.getBalance());
		a.deposit(3000);
		System.out.println("您的账户余额为:"+a.getBalance());

		System.out.println("月利率为:"+(a.getMonthlyInsert()*100)+"%");

	}
}

package exer2;

public class CheckAccount extends Account {
	private double overdraft; // 可透支限额

	public CheckAccount(int id, double balance, double annualInterstRate, double overdraft) {
		super(id, balance, annualInterstRate);
		this.overdraft = overdraft;
	}

	@Override
	public void withdraw(double amount) {
		if(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("超过可透支限额!");
		}
	}

	public double getOverdraft() {
		return overdraft;
	}

	public void setOverdraft(double overdraft) {
		this.overdraft = overdraft;
	}

}

 

package exer2;

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());
	} 
}

标签:练习题,继承,double,getBalance,System,balance,super,public,out
来源: https://blog.csdn.net/m0_52982868/article/details/120742112

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有