Két objektum mindig egyenlő lesz, ha az Összehasonlító () metódusuk nullát ad vissza?
Két objektum mindig egyenlő lesz, ha az Összehasonlító () metódusuk nullát ad vissza?
Anonim

Azt van azt ajánlotta összehasonlítani csak visszatér 0, ha egy hívást egyenlő tovább ugyanazok a tárgyak lenne Visszatérés igaz: összehasonlítani (e2) == 0 ugyanaz van logikai érték, mint e1. egyenlő (e2) a C osztály minden e1-ére és e2-ére. Vegye figyelembe, hogy null van nem egy osztály példánya, és e.

Továbbá lehetséges-e, hogy az egyenlők () hamis értéket adnak vissza, még akkor is, ha két objektum tartalma megegyezik?

4 válasz. Java-ban a nyilvános logikai módszer egyenlő ( Tárgy obj) öröklődik a Tárgy . A módszer megvalósítása azonban a Tárgy osztály az, hogy a egyenlő módszer lesz vissza, ha és csak ha az két tárgy összehasonlításra kerülnek a azonos példa.

Következésképpen a kérdés az, hogy miért kell az összehasonlításnak () konzisztensnek lennie az egyenlő () metódussal a Java-ban? Ez azért van így, mert a Map interfész a egyenlő műveletet, de a térkép minden kulcsfontosságú összehasonlítást a segítségével hajt végre összehasonlítani (vagy összehasonlítani) módszer , tehát két kulcsnak minősül egyenlő ezáltal módszer a rendezett térkép szempontjából egyenlő.

Ezt szem előtt tartva, mi a különbség az == egyenlő () és az Összehasonlítás () metódus között?

összehasonlítani : Összehasonlít két karakterláncot lexikográfiailag. egyenlő : Összehasonlítja ezt a karakterláncot a megadott objektummal. összehasonlítani Összehasonlít két karakterláncot karaktereik alapján (ugyanazon indexen), és ennek megfelelően egy egész számot (pozitív vagy negatív) ad vissza. egyenlő () ellenőrzi, hogy két objektum azonos-e vagy sem, és egy logikai értéket ad vissza.

Felülírhatjuk az Összehasonlítás módszert?

Összehasonlításmód felülbírálása Negatív egész számot kell visszaadnia (általában -1), ha az aktuális kiváltó objektum kisebb, mint az átadott egy , és pozitív egész szám (általában +1), ha nagyobb, és 0, ha egyenlő. módszerrel összehasonlítani kivételt kell dobnia, ha az átadott objektum típusa nem kompatibilis vagy null.

Ajánlott: