gpt4 book ai didi

java - 实现可比接口(interface)作业

转载 作者:行者123 更新时间:2023-12-01 07:34:51 25 4
gpt4 key购买 nike

我是计算机编程的初学者,正在使用 Java。对于我的家庭作业,我被要求根据以下规范创建通讯录:

  1. 首先,联系人被定义为元组:firstName、lastName、phoneNumber 和 email。

  2. 您将创建一个 Contact 类,它允许获取和设置这些变量以及 toString() 方法和 equals() 方法。 Contact 类应该实现 Comparable 接口(interface)。

  3. 您将创建一个带有静态方法的 ArrayOperation 类,该方法对实现 Comparable 接口(interface)的一维对象数组进行排序

  4. 接下来,ContactBook 类应该能够搜索、创建和生成包含所有已排序联系人的字符串。

  5. 主类(无论你想怎么调用它)应该提供一个菜单,询问要创建多少个联系人,然后提供上述三个选项。

  6. 添加时,系统会收集用户的输入,并且 ContactBook.addContact(Contact c) 方法会将该联系人存储在内存中。

  7. 如果用户正在搜索,程序会要求用户提供所有联系人信息,并使用 equals 方法搜索所需的联系人。当用户按“q”时程序退出

我在实现 Comparable 接口(interface)时遇到问题。这是我到目前为止所拥有的:

public class Contact implements Comparable
{
private String firstName, lastName, phoneNumber, email;

public void setFirstName(String fName){firstName = fName;}
public void setLastName(String lName){lastName = lName;}
public void setPhoneNumber(String num){phoneNumber = num;}
public void setEmail(String email){this.email = email;}

public String getFirstName(){return firstName;}
public String getLastName(){return lastName;}
public String getPhoneNumber(){return phoneNumber;}
public String getEmail(){return email;}

public String toString()
{
return "First Name: " + firstName +
"\nLast Name: " + lastName +
"\nPhone Number: " + phoneNumber +
"\nEmail: " + email;
}

public boolean equals(Contact cont)
{
return this.firstName.equals(cont.firstName) &&
this.lastName.equals(cont.lastName) &&
this.phoneNumber.equals(cont.phoneNumber) &&
this.email.equals(cont.email);
}

public int compareTo(Contact cont)
{
if(this.firstName.equals(cont.firstName) &&
this.lastName.equals(cont.lastName) &&
this.phoneNumber.equals(cont.phoneNumber) &&
this.email.equals(cont.email))
return 0;
return 1;
}
}
  • 每次我编译代码时,编译器都会显示一个错误:我的类(class)不是抽象的,尽管它不应该是抽象的摘要。
  • 另外,坦白说我不知道​​如何使用compareTo()方法。我想要比较我的 Contact 类的两个实例,但我无法在compareTo方法中使用“this.Contact”。
  • 最后,我对返回 -1 和 1 时要比较什么感到困惑对于compareTo()方法。

最佳答案

您需要在类声明中使用 Comparable 的泛型来匹配您在 compareTo 中比较的对象:

public class Contact implements Comparable<Contact> {

也可以使用String.compareTo()通过 compareTo 方法中的 String.equals() 。有many examples的这个。

关于java - 实现可比接口(interface)作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13354548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com