Ar du objektai visada bus lygūs, kai jų palyginimasTo () metodas grąžins nulį?
Ar du objektai visada bus lygūs, kai jų palyginimasTo () metodas grąžins nulį?

Video: Ar du objektai visada bus lygūs, kai jų palyginimasTo () metodas grąžins nulį?

Video: Ar du objektai visada bus lygūs, kai jų palyginimasTo () metodas grąžins nulį?
Video: JS Tutorial: Find if Two Object Values are Equal to Each Other 2024, Gegužė
Anonim

Tai yra rekomendavo tai palyginti su tik grįžta 0, jei skambinate lygus įjungta tie patys objektai būtų grąžinti tiesa: palyginti su (e2) == 0 turi tą patį loginė reikšmė kaip e1. lygus (e2) kiekvienam C klasės e1 ir e2. Atkreipkite dėmesį, kad nulis yra ne kokios nors klasės pavyzdys, o el.

Be to, ar lygybės () gali grąžinti false, net jei dviejų objektų turinys yra vienodas?

4 atsakymai. Java programoje viešasis loginis metodas lygus ( Objektas obj) yra paveldėtas iš Objektas . Tačiau metodo įgyvendinimas, kaip apibrėžta Objektas klasė yra ta lygus metodas bus grąžinti, jei ir tik jeigu į du objektai lyginami yra tas pats instancija.

Vėliau kyla klausimas, kodėl palyginimas () turėtų atitikti „Java“metodą lygus ()? Taip yra todėl, kad žemėlapio sąsaja yra apibrėžta pagal lygus operaciją, tačiau žemėlapis atlieka visus pagrindinius palyginimus naudodamas jį palyginti su (arba palygink) metodas , taigi laikomi du raktai lygus pagal tai metodas yra surūšiuoto žemėlapio požiūriu, lygus.

Turint tai omenyje, kuo skiriasi == lygu () ir palyginimasTo () metodas?

palyginti su : Lygina dvi eilutes leksikografiškai. lygus : lygina šią eilutę su nurodytu objektu. palyginti su lygina dvi eilutes pagal jų simbolius (tuo pačiu indeksu) ir atitinkamai grąžina sveikąjį skaičių (teigiamą arba neigiamą). lygus () patikrina, ar du objektai yra vienodi, ar ne, ir pateikia loginį rezultatą.

Ar galime nepaisyti palyginimo metodo?

Nepaisyti palyginimo su metodu Jis turėtų grąžinti neigiamą sveikąjį skaičių (paprastai -1), jei dabartinis suaktyvinantis objektas yra mažesnis nei priimtas vienas , ir teigiamas sveikasis skaičius (paprastai +1), jei didesnis nei, ir 0, jei lygus. Palyginti su metodu turėtų mesti išimtį, jei perduotas objektas yra nesuderinamo tipo arba nulinio.

Rekomenduojamas: