2017-12-05 5 views
-1

抽象クラスプロジェクトの作成。抽象クラスは親クラスであり、equalsメソッドを含みます。私のプロジェクトの一部は、3つのサブクラスのクライアントID(長)を比較して重複IDがないことを確認するBoolean equalsメソッドを作成することです。コードを実装する際に問題が発生しました。以下のコードの中に、クライアントIDの3クラス値を落とし、その後のtoString()メソッドにコードを組み込む手助けが必要私がこれまで持っているものブール値と等しいメソッド

public static boolean equals(Object A, Object B, Object C) { 
    if(A.equals(B) || A.equals(C) || B.equals(C)) 
     return true; 
    else 
     return false; 
} 

です。

+1

私たちのために理解してください。 – meditat

+0

import java.util.Scanner; パブリッククラスのテスト{ パブリック静的無効メイン(文字列[] args){ \tスキャナーS =新しいスキャナ(System.in)。 long [] array = new long [3]; for(int i = 0; i user9057517

+0

public static boolean equal(Object a、long [] b){ if(a == null){ return(b == null); } if(b == null){ falseを返します。 (長)a!= b.length){ return false; (int i = 0; i user9057517

答えて

1

あなたは次のようにあなたの方法を変更することができます。

public static boolean equals(Object A, Object B, Object C) { 
    return A != null && B != null && C != null && (A.equals(B) || A.equals(C) || B.equals(C)); 
} 

いくつかのこと:

  1. あなたが持っている任意の場所:

    if (cond) { 
        return true; 
    } else { 
        return false; 
    } 
    

    あなただけcondを返すことができます。return cond;

  2. がnull以外の検証を追加しました:A != null && B != null && C != null
  3. あなたは、各クラスのequals()メソッド(ABC)をオーバーライドして、対等に(あなたの例では唯一id)を使用するフィールド/秒を含める必要があります
1

私はあなたが望むものを手に入れませんでしたが、私はショットを取るでしょう:

static class Client { 
    private long id; 

    @Override 
    public boolean equals(Object obj) { 
     if (this == obj) return true; 
     if (getClass() != obj.getClass()) return false; 
     Client oth = (Client) obj; 
     return oth.id == this.id; 
    } 

    Client(long id) { 
     this.id = id; 
    } 
} 

public static boolean equals(Object A, Object B, Object C) { 
    return A.equals(B) || A.equals(C) || B.equals(C); 
} 

public static void main(String[] args) { 
    Object c1 = new Client(4); 
    Object c2 = new Client(3); 
    Object c3 = new Client(2); 

    equals(c1, c2, c3); 
} 
+0

3つの子クラスに渡ってこのコードを実装して相互参照することができますか。それらはすべて同じ親クラスを持ちます。配列に数値を格納する必要がありますか? – user9057517

+0

@ user9057517、あなたはより具体的で明確に記述できますか?何番の話ですか? ID? – GrastaSsS

+0

例: 親クラスにはプライベートlong clientidがあります – user9057517

関連する問題