4、访问器方法:
编写一个类,描述银行账户,包括收入、支出和账户余额三种属性,同时包括对这三种属性的读、写的访问器方法,这三种属性都定义为私有的。
该类定义的银行账户还能够通过自己的收入和支出自动计算账户余额。对于账户余额只能读取,自动计算,但不能够直接赋值,也就是不能够写。
编写一个测试类,输入收入和支出项,打印账户余额。
虽然很简单,但是费了些心思来做。
主函数类名Test
class Bank {
<span style="white-space:pre"> </span>//英文不好,简写“收入、支出、余额”
private float income, outcome, come;
<span style="white-space:pre"> </span>
// 构造方法
Bank(float income) {
<span style="white-space:pre"> </span>//收入为正时赋值
if (income >= 0) {
this.income = income;
come = this.income - this.outcome;
} else {
System.out.println("你是大爷\n交易失败");
}
}
// 构造方法重载
Bank(float income, float outcome) {
if (income >= outcome) {
this.income = income;
this.outcome = outcome;
come = this.income - this.outcome;
} else {
System.out.println("你是大爷\n交易失败");
}
}
// 交易方法存入、支出
void bank(float turn) {
if (turn >= 0) {
// 如果turn大于0为存入
this.income += income;
come = this.income - this.outcome;
} else if (income - outcome + turn >= 0) {
// 支出,判断余额足否
this.outcome -= turn;
come = this.income - this.outcome;
} else {
System.out.println("余额不足,无法进行交易");
}
}
// 交易方法重载
void bank(float income, float outcome) {
if (this.income + income - this.outcome - outcome >= 0) {
// 判断交易后余额足否
this.income += income;
this.outcome += outcome;
come = this.income - this.outcome;
} else {
System.out.println("余额不足,无法进行交易");
}
}
// 显示余额
void show() {
System.out.println("余额还有:" + come);
}
}
class Test {
public static void main(String[] args) {
Bank p1 = new Bank(500, 250);
p1.show();
p1.bank(-400);
p1.show();
p1.bank(-100);
p1.show();
}
}