Java тілінде қайта анықтау теңдеу әдісін пайдалану дегеніміз не?
Java тілінде қайта анықтау теңдеу әдісін пайдалану дегеніміз не?

Бейне: Java тілінде қайта анықтау теңдеу әдісін пайдалану дегеніміз не?

Бейне: Java тілінде қайта анықтау теңдеу әдісін пайдалану дегеніміз не?
Бейне: ЧГК: не? Қайда? Қашан? оқшаулау бойынша математиктер | Flath #matholation 2024, Сәуір
Anonim

Теңдіктерді қайта анықтау және hashCode Java

тең () әдіс болып табылады пайдаланылады hashCode болған кезде теңдік үшін нысандарды салыстыру пайдаланылады сол нысанға сәйкес бүтін кодты жасау үшін

Java тіліндегі теңдік әдісін пайдалану дегеніміз не?

The тең () әдіс теңдік үшін екі нысанды салыстырады және егер олар болса, ақиқат мәнін қайтарады тең . The тең () әдіс Object класында берілген пайдаланады екі нысанның бар-жоғын анықтау үшін сәйкестендіру операторы (==). тең . Қарапайым деректер түрлері үшін бұл дұрыс нәтиже береді.

Сонымен қатар, Java тіліндегі теңдік әдісін қалай қайта анықтауға болады? Жоғарыдағы код сыныбында Person келесі қадамдық тәсілді қолданатын қайта анықталған equals() әдісіне ие:

  1. Осы нысанға сілтеме аргумент нысанына сілтемемен бірдей болса, true мәнін қайтарыңыз.
  2. Егер аргумент нөл болса, жалған мәнін қайтарыңыз.
  3. Егер нысандар бір сыныптан болмаса, false мәнін қайтарыңыз.

Тиісінше, неге Java-дағы теңдік әдісін қайта анықтау керек?

String сыныбы қайта анықтайды the тең әдіс ол Object сыныбынан мұраға алынды және екі String нысан таңбасын таңба бойынша салыстыру логикасын жүзеге асырды. Себебі тең әдіс Object сыныбында теңдік сілтеме жасайды, себебі ол басқа нәрсені қалай істеу керектігін білмейді.

Java тіліндегі hashCode және equals әдісін қайта анықтау нені білдіреді?

егер сынып қайта анықталса тең , керек хэшкодты қайта анықтау . екеуі болғанда ауыстырылды , тең және hashCode міндетті пайдалану өрістердің бірдей жиынтығы. егер екі нысан болса тең , содан кейін олардың hashCode мәндер болуы керек тең сондай-ақ. егер объект өзгермейтін болса, онда hashCode кэштеу және жалқау инициализацияға үміткер болып табылады.

Ұсынылған: