Új hozzászólás Aktív témák

  • M_AND_Ms

    veterán

    válasz Aethelstone #7357 üzenetére

    "Java-ban a Stringeket equals-sal hasonlítunk össze, nem ==."

    Ez kicsit sántít ill. félrevezető.

    Java-ban a == -nal nem a két objektumot hasonlítjuk össze, hanem a két referenciát. Vagyis akkor kapunk igazat ha mindkettő ugyanarra az objektumpéldányra mutat.
    Az equals-nél pedig meghívjuk az adott objektumpéldány equals függvényét, ami az objektumra jellemző összehasonlítást végzi és megmondja, hogy a paraméterként megadott másik objektumpéldányt azonosnak tekintjük-e, vagy sem. Ebben az equals-ben lehet megírni az objektumra jellemző logikát, ami az azonosságot kimondja. String-nél természetesen ezt már megírták és akkor mondja azonosnak, ha pontosan ugyanaz a a karakterliterál van mindkét String példányban.
    De pl. írhatok az Alma osztályomba egy saját equals függvényt, ami az én logikám szerint akkor ad igazat ha a méret, a szín és a súly tulajdonságai megegyeznek a két összehasonlítandó Alma osztályból létrehozott példánynál

    Tehát, NEM CSAK Stringnél kell az equals a == helyett az azonosság eldöntésére, hanem minden osztály példányánál.

Új hozzászólás Aktív témák