package Inheritance;
import java.util.Scanner;
interface Comparable{
int compareTo(Object otherObject);
}
interface Measurable{
double getMeasure();
}
public class BankAccount implements Comparable, Measurable {
private double balance;
private int counter;
public String account;
public BankAccount(){
balance = 0;
counter = 0;
account = "";
}
public void SetAccount(String accountNumber, double amount){
account = accountNumber;
balance = amount;
}
public void Deposit(double amount){
balance = balance + amount;
counter = counter + 1;
System.out.println("Account: "+ account + " has balance: " + balance);
}
public void Withdraw(double amount){
balance = balance - amount;
counter = counter + 1;
System.out.println("Account: "+ account + " has balance: " + balance);
}
public double getBalance(){
return balance;
}
public void MonthEnd(){
counter = 0;
}
public void printMenu(){
System.out.println("Please choose your options to proceed: ");
System.out.println("D)eposit W)ithdraw M)onth end Q)uit");
}
public double getMeasure(){
return balance;
}
public int compareTo(Object otherObject) {
BankAccount other = (BankAccount) otherObject;
if (balance < other.balance) {
return -1;
}
if (balance > other.balance) {
return 1;
}
return 0;
}
public class Implementation {
public static void main(String[] args) {
//Implement Comparable Interface example
BankAccount[] accounts2 = new BankAccount[3];
accounts2[0] = new BankAccount();
accounts2[0].SetAccount("SA001", 10000);
accounts2[1] = new BankAccount();
accounts2[1].SetAccount("SA001", 5000);
accounts2[2] = new BankAccount();
accounts2[2].SetAccount("SA001", 20000);
System.out.println(accounts2[0].compareTo(accounts2[1]));
Arrays.sort(accounts2);
}
}
at java.base/java.util.ComparableTimSort.sort(ComparableTimSort.java:188)
at java.base/java.util.Arrays.sort(Arrays.java:1250)
at Inheritance.Implementation.main(Implementation.jav
摆脱:
interface Comparable{
int compareTo(Object otherObject);
}
因为创建隐藏同名核心Java接口的自己的接口会混淆编译器。相反,使用核心Java可比接口。
这里的问题是arrays.sort(...)
方法必须使用核心接口,而不是您自己的接口。否则,您的代码可能会工作,尽管可能会混淆其他程序员,更重要的是,您未来的自己。
public class BankAccount implements Comparable<BankAccount>, Measurable {
@Override
public int compareTo(BankAccount other) {
// ....
}
问题内容: 我不确定如何在我的抽象类中实现类似的接口。我有以下示例代码可用来尝试解决这个问题: 我有一个测试类,该类将创建Animal类型的对象,但是我希望在该类中具有一个可比的接口,以使发现的年纪高于低位。我不知道如何去解决这个问题。 问题答案: 您只需要定义即p。然后,您必须以自己喜欢的方式实现该方法。 使用的实现,具有较高级别的动物将获得更高的顺序。我希望你的想法和这个例子。
我不确定如何在我的抽象类中实现一个可比较的接口。我有下面的示例代码,我正在使用它来尝试和得到我的头脑周围: 我有一个测试类,它将创建动物类型的对象,但是我想在这个类中有一个类似的接口,这样更早的发现排名就会更高。不过,我不知道该怎么做。
有人知道为什么这段代码没有对员工进行正确的排序吗?我需要他们按照工资的多少按升序排序。 我想我把smth搞砸了,因为我把工资存进了双打。但我真的不知道该怎么办。Plz帮助。 输出: 这也不管用
因此,我尝试使用treeMap来创建数据集合,然后我希望在使用自己的比较器时获得一个排序列表。 我的问题是collections.sort会引发错误,因为的实例,但我的extsListed是ArrayList类型,它确实是可迭代的,如http://docs.oracle.com/javase/8/docs/api/java/util/list.html所示
我想制作一个实现比较器接口的比较器类。在类中,我想根据它们的ID比较我的2个员工对象。到目前为止,我制作的员工类是: 我完全被困住了,不知道该怎么办。有人能帮忙吗?
重写Compariable接口的compareTo()方法的最佳方法是什么?此外,当我们可以编写自己的compareTo()方法而无需实现时,为什么还要实现可比较的接口呢。以以下座椅类别为例: 尽管我们没有实现可比接口,但上述工作仍然有效,那么我们为什么要实现它呢?