实现银行账户类构造方法成成员方法。 public class Account //账户类 { private String name; //储户姓名 private double balance; //账户余额 public Account(String name) //构造方法 public String getName() //返回账户名 public double balance() //查看账户余额 public boolean put(double value)//存款,存入金额 public double get(double value) //取款,参数为取款金额,返回实际取到金额 }声明实现Comparble<T>接口,提供按照账户余额比较账户大小的方法;同时,使用Comparator<T>接口声明比较器类CompareName,按照账户名比较账户大小;编写main方法测试相应的接口实现方法。
时间: 2024-02-14 08:12:21 浏览: 28
好的,我理解您的要求了。以下是实现银行账户类的代码:
```java
import java.util.Comparator;
public class Account implements Comparable<Account> {
private String name;
private double balance;
public Account(String name) {
this.name = name;
this.balance = 0;
}
public String getName() {
return name;
}
public double getBalance() {
return balance;
}
public boolean put(double value) {
if (value <= 0) {
return false;
} else {
balance += value;
return true;
}
}
public double get(double value) {
if (value <= 0 || balance < value) {
return 0;
} else {
balance -= value;
return value;
}
}
@Override
public int compareTo(Account o) {
if (this.balance > o.balance) {
return 1;
} else if (this.balance < o.balance) {
return -1;
} else {
return 0;
}
}
public static class CompareName implements Comparator<Account> {
@Override
public int compare(Account o1, Account o2) {
return o1.name.compareTo(o2.name);
}
}
public static void main(String[] args) {
Account a1 = new Account("Alice");
Account a2 = new Account("Bob");
a1.put(100);
a2.put(200);
System.out.println("a1's balance: " + a1.getBalance());
System.out.println("a2's balance: " + a2.getBalance());
System.out.println("a1 vs a2: " + a1.compareTo(a2));
System.out.println("a2 vs a1: " + a2.compareTo(a1));
CompareName compareName = new CompareName();
System.out.println("Alice vs Bob: " + compareName.compare(a1, a2));
System.out.println("Bob vs Alice: " + compareName.compare(a2, a1));
}
}
```
在上述代码中,我们实现了银行账户类 `Account`。该类有一个构造方法 `public Account(String name)`,用于创建账户对象。类中还包含了 `getName()` 方法用于返回账户名,`getBalance()` 方法用于查看账户余额,`put(double value)` 方法用于存款,`get(double value)` 方法用于取款。其中,`put(double value)` 和 `get(double value)` 方法都返回一个布尔值或一个双精度浮点数,表示操作是否成功或实际取款金额。
`Account` 类还实现了 `Comparable<Account>` 接口,该接口中的 `compareTo(Account o)` 方法用于按照账户余额比较账户大小,返回一个整数值表示比较结果。如果当前账户余额大于参数账户的余额,则返回 1;如果当前账户余额小于参数账户的余额,则返回 -1;否则,返回 0。
此外,我们还使用了 `Comparator<Account>` 接口声明了一个比较器类 `CompareName`,该类中的 `compare(Account o1, Account o2)` 方法用于按照账户名比较账户大小。该方法返回一个整数值表示比较结果。如果 `o1` 的账户名在字典序中排在 `o2` 的账户名之前,则返回负整数;如果 `o1` 的账户名在字典序中排在 `o2` 的账户名之后,则返回正整数;否则,返回 0。
最后,我们在 `main` 方法中测试了 `Account` 类的方法和接口的实现。我们创建了两个账户 `a1` 和 `a2`,并对它们进行了存款。然后我们使用 `compareTo` 方法比较了 `a1` 和 `a2` 的大小关系,以及 `a2` 和 `a1` 的大小关系。接着,我们创建了 `CompareName` 对象 `compareName`,并使用它的 `compare` 方法比较了 `a1` 和 `a2` 的大小关系,以及 `a2` 和 `a1` 的大小关系。最后,我们将比较结果输出到控制台。