我是计算机编程的初学者,我正在使用 Java。对于我的家庭作业,我被指示根据以下规范创建一个通讯录:
首先,联系人被定义为元组:firstName、lastName、phoneNumber 和 email。
您将创建一个允许获取和设置这些变量的类 Contact 以及一个 toString() 方法和一个 equals() 方法。Contact 类应该实现 Comparable 接口。
您将使用静态方法创建一个类 ArrayOperation,该方法对实现 Comparable 接口的对象的一维数组进行排序
接下来,ContactBook 类应该能够搜索、创建和生成包含所有已排序联系人的字符串。
一个主类(随便你怎么称呼它)应该提供一个菜单,询问要创建多少个联系人,然后提供上面的三个选项。
添加时,收集来自用户的输入,ContactBook.addContact(Contact c) 方法将该联系人存储在内存中。
如果用户正在搜索,程序会询问用户所有的联系信息,并使用 equals 方法搜索所需的联系人。当用户按“q”时程序退出
我在实现 Comparable 接口时遇到了麻烦。这是我到目前为止所拥有的:
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;
}
}
- 每次我编译代码时,编译器都会显示一个错误,说我的类不是抽象的,即使它不应该是抽象的。
- 另外,坦率地说,我不知道如何处理 compareTo() 方法。我想比较我的 Contact 类的两个实例,但我无法在 compareTo 方法中使用“this.Contact”。
- 最后,我对 compareTo() 方法返回 -1 和 1 时要比较的内容感到困惑。