Java 上机作业2第三题

大概就是很久不写博客了强行憋出来的一篇就是了


picture

按照惯例先贴代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
import java.math.BigDecimal;
import java.text.DecimalFormat;
public class Account {
public static void main(String[] args) {
Account account1 = new Account();
Account account2 = new Account("001", "yty", 1000);
Account account3 = new Account("002", "cayun", 1000);
account1.queryBalance();
account2.queryBalance();
account3.queryBalance();
account1.deposit(account1.getId(),100);
account3.deposit(account3.getId(), 100);
account3.withdarw(account3.getId(), 10000);
account2.withdarw(account3.getId(), 100);
account1.queryBalance();
account2.queryBalance();
account3.queryBalance();
}
private String id;
private String owner;
private double balance;
Account () {
id = null;
owner = null;
balance = 0.00;
}
Account (String id, String owner, double amount) {
this.id = id;
this.owner = owner;
balance = amount;
}
public void setId(String id) {
this.id = id;
}
public String getId(){
return id;
}
public void setOwner(String owner) {
this.owner = owner;
}
public void deposit(String id, double amount) {
if (id == null) {
System.out.println("账号未知");
} else {
balance += amount;
System.out.println("成功存款" + amount + "元, 当前余额为" + balance + "元");
}
}
public void withdarw(String id, double amount) {
if (id == null) {
System.out.println("账号未知");
} else if (balance < amount) {
System.out.println("余额不足!");
} else {
balance -= amount;
System.out.println("成功取款" + amount + "元, 当前余额为" + balance + "元");
}
}
public void queryBalance() {
System.out.println("***————————***");
System.out.println("id: " + id);
System.out.println("owner: " + owner);
System.out.println("balance: " + balance);
System.out.println("***————————***");
}
public double getBalance(String id) {
BigDecimal b = new BigDecimal(balance); //设置有效数字
return b.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();
}
}

其他地方没有什么好说的,主要是说一下deposit这个方法
题目的描述是:将金额amount存入id帐户,如果id帐号为null,则打印信息为“帐号未知!” 否则打印“成功存款×××元,当前余额为×××元!”。

乍一看,是需要给一个id,然后通过该id查询对象实例,再对balance进行加减。

跟大神讨论了之后,大神告诉我这种骚操作裸实现很难,除非是定义对象时定义成数组。然而题目的意思明显不是让这么做。

再仔细读题,会发现这个方法只是需要来验证该用户(“id”)是否存在。

判断id是否为空就好了。

好了结束了,有什么问题我们之后继续说