我是計算機編程的初學者,我正在使用Java。 對於我的家庭作業,我奉命根據以下規格創建通訊錄:實現可比接口作業
首先,接觸被定義爲元組:名字,姓氏,phoneNumber的和電子郵件。
您將創建一個Contact類,它允許獲取和設置這些變量以及toString()方法和equals()方法。 Contact類應該實現Comparable接口。
您將創建一個類ArrayOperation與排序實現Comparable接口對象的一維數組的靜態方法
接下來,ContactBook類應該能夠搜索,創造和生產的String與所有排序的聯繫人。
一個主類(可以任意調用它)應該提供一個菜單,詢問要創建多少個聯繫人,然後提供上述三個選項。
添加時,來自用戶的輸入被收集並且方法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()方法。我 想要比較我的聯繫人類的兩個實例,但我無法 在compareTo方法中使用「this.Contact」。
- 最後,我對compareTo()方法返回-1和1 時要比較的內容感到困惑。
Comparable界面是什麼樣的? –
@SeanF,[this](http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/Comparable.html#compareTo \(java.lang.Object \)) –
哈哈,我的那個壞。 –