私はコンピュータープログラミングの初心者で、Java を使用しています。宿題のために、次の仕様に従って連絡帳を作成するように指示されました。
最初に、連絡先が次のタプルとして定義されます: firstName、lastName、phoneNumber、および email。
これらの変数の取得と設定を可能にする Contact クラス、および toString() メソッドと equals() メソッドを作成します。クラス Contact は Comparable インターフェースを実装する必要があります。
Comparable インターフェイスを実装するオブジェクトの 1 次元配列を並べ替える静的メソッドを持つクラス ArrayOperation を作成します。
次に、ContactBook クラスは、並べ替えられたすべての連絡先を含む文字列を検索、作成、生成できる必要があります。
メイン クラス (名前は何でも構いません) は、作成する連絡先の数を尋ねるメニューを提供し、次に上記の 3 つのオプションを提供する必要があります。
追加すると、ユーザーからの入力が収集され、メソッド 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 クラスの 2 つのインスタンスを比較したいのですが、compareTo メソッドで「this.Contact」を使用できません。
- 最後に、compareTo() メソッドで -1 と 1 を返すときに何を比較するかについて混乱しています。