在这个代码基础上声明实现Comparble<T>接口,提供按照账户余额比较账户大小的方法;同时,使用Comparator<T>接口声明比较器类CompareName,按照账户名比较账户大小;编写main方法测试相应的接口实现方法。
时间: 2024-01-22 12:21:19 浏览: 68
给定的代码基于Java语言,实现了一个简单的银行账户类。
```java
public class BankAccount {
private String name;
private double balance;
public BankAccount(String name, double balance) {
this.name = name;
this.balance = balance;
}
public String getName() {
return name;
}
public double getBalance() {
return balance;
}
public void deposit(double amount) {
balance += amount;
}
public void withdraw(double amount) {
if (balance >= amount) {
balance -= amount;
} else {
System.out.println("Insufficient balance");
}
}
@Override
public String toString() {
return "BankAccount{" +
"name='" + name + '\'' +
", balance=" + balance +
'}';
}
}
```
现在我们要实现`Comparable<T>`接口,提供按照账户余额比较账户大小的方法。按照Java的约定,如果一个类实现了`Comparable<T>`接口,就应该覆写`compareTo()`方法,该方法接受一个泛型参数`T`,并返回一个整数值。如果当前对象小于参数对象,则返回负整数,如果当前对象等于参数对象,则返回0,如果当前对象大于参数对象,则返回正整数。
```java
public class BankAccount implements Comparable<BankAccount> {
// ...
@Override
public int compareTo(BankAccount other) {
if (balance < other.balance) {
return -1;
} else if (balance > other.balance) {
return 1;
} else {
return 0;
}
}
}
```
现在我们还需要使用`Comparator<T>`接口声明比较器类`CompareName`,按照账户名比较账户大小。同样地,按照Java的约定,如果一个类实现了`Comparator<T>`接口,就应该覆写`compare()`方法,该方法接受两个泛型参数`T`,并返回一个整数值。如果第一个参数小于第二个参数,则返回负整数,如果两个参数相等,则返回0,如果第一个参数大于第二个参数,则返回正整数。
```java
public class CompareName implements Comparator<BankAccount> {
@Override
public int compare(BankAccount a1, BankAccount a2) {
return a1.getName().compareTo(a2.getName());
}
}
```
最后,我们编写一个`main`方法,测试相应的接口实现方法。
```java
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
BankAccount[] accounts = {
new BankAccount("Alice", 5000),
new BankAccount("Bob", 3000),
new BankAccount("Charlie", 7000),
new BankAccount("David", 2000)
};
// 按照账户余额排序
Arrays.sort(accounts);
System.out.println(Arrays.toString(accounts));
// 按照账户名排序
Arrays.sort(accounts, new CompareName());
System.out.println(Arrays.toString(accounts));
}
}
```
阅读全文